JavaScript高级程序设计读书笔记(三)之JS基本概念

一、语法

1、js是区分大小写的testTest是不一样的(重要)。
2、标识符是指变量、函数名、参数名、属性名,命名规则是第一个字符必须是字母以及_$开头,其他字符可以是字母_$数字
3、语言中的注释是:

//单行注释
/*
这是块级注释
*/

4、语言标准和严格模式,严格模式开启:

function test(){
    'use strict'
    //严格模式开启会处理ECMAscript中不确定的行为,而且对某些不安全的操作抛出错位。
}

5、语句结束要加;,当然不加也是可以的,但是在代码压缩的解析上会带来不必要的错误(强烈推荐加上)

二、关键字和保留字

关键字:按照规则,关键字也是语言保留的,不能用作标识符。
break do instanceof this function
typeof case else while try
new var catch in delete
finally return void throw if
continue for switch default with
debugger*

保留字

abstract enum int short static
boolean export interface import public
byte extends long super double
char final native synchronized implements
class float package throws volatile
const goto private transient protected
debugger
第5 版把在非严格模式下运行时的保留字缩减为下列这些:
class enum extends super const
export import
在严格模式下,第5 版还对以下保留字施加了限制:
implements package public interface private
static let protected yield

注意, let 和yield 是第5 版新增的保留字;其他保留字都是第3 版定义的。为了最大程度地保证兼容性,建议大家将第3 版定义的保留字外加let 和yield 作为编程时的参考。

在ECMAScript3版本代码中使用关键字作标识符,会导致"Identifier Expected" 错误。而使用保留字作标识符可能会也可能不会导致相同的错误,具体取决于特定的引擎。一般来说,最好都不要使用关键字和保留字作为标识符和属性名,以便与将来的ECMAScript 版本兼容。

三、变量

var messages;//声明变量var是关键字,messages是标识符。
var messages='hi!';//变量messages保存的变量值`hi!`
messages=520;//没问题,但是不推荐使用。
function test(){
      var messages01=1000;//函数里面命名的是局部变量。
      messages02=2000;//相当于全局变量,因为没有用vae关键字。(但是不要这样,严格模式会报错)
};
test();
alert(messages01);//错误,访问不到局部变量。
alert(messages);//2000没问题
var a,b,c,d;//可以一次声明多个变量以逗号分割分号结尾。
在严格模式下,不能定义eval和arguments的变量,就是标识符会导致语法错误。

四、数据类型

1. typeof:用于检测数据类型
2. Undefined:只有一个值undefined,声明一个变量但没有赋值就会自动取值为undefined。
3. Null:只有一个值null,null表示空对象指针,用typeof检测时返回'object'.null==nudefined //true.
4. Boolean:有两个值true和false,Boolean(message)可以转化任意值。
5. Number:是数字类型,'e7'10的7次方,'e-7'负10的7次方。0.1+0.2!=0.3而是0.30000000000000004,
js最小值Number.MIN_VALUE==5e-324,最大值Numer.NAX_VALUE==1.7976931348623157e+308。
NaN非数值是特殊数值,本来要返回数值的时候未返回数值的情况,NaN自身都不等于自身。
Number()转换任意值,parseInt()转化成整数第二个参数可以是几进制, parseFlont()也是转换成数值只是带有小数如果有多个点只取第一个。
String:是字符串" "和''中的字符就是字符串,和字符串相加会被隐式转换,toString()可以把别的类型转化为字符串。
Object:代表对象,其实就是数据和功能的集合。创建对象var obj = new Object()。

五、操作符

1、一样操作符:--++递减和递增,--2前置优先级高,2--后置优先级降低。一元'+',在非数字类型前会隐式转换成数值。一元'-'会把数值变成负数,非数值和一元加一样。
2、位操作:暂略过。
3、布尔操作符:非、&&与两个都是真、||或有一个为真。
4、乘性操作符:*乘、/除、%余(求模)。
5、加性操作符:+加、-减。
6、关系操作符:<=>=<>.
7、相等操作符:==相等操作符会隐式转换类型进行比对、===全等于不会转换类型比对,比较严谨。
8、条件操作符:var value = trueAndFalse ? true : false;
9、赋值操作符:=*=/=%=+=-=<<=>>=>>>=、简化用的,并不能提升性能。
10、逗号操作符:可以在一行执行多个操作,var a,b,c,d;还可以赋值var a=(1,2,3,4)//a是4。

六、语句

//if语句
if(true){true执行此处代码块}else{false执行此处代码}
if(true){true执行此处代码块}else if(true){false执行此处代码}.多个..else{false执行此处代码}
//do...while语句
do...while语句是后测试语句,do...while中的代码至少执行一次。
do{true执行的代码}while(条件为true)
while语句
while是前测试语句,只有在达到条件就是为true才会执行。
while(false and true){是true则执行此处代码}。
for语句
for循环,也是个前测试语句
for(声明变量;运算条件;变量变化){循环代码}
for....in...语句
for...in...语句是一个精准的迭代语句,可以用来枚举对象属性
for(property in expression){执行的代码}
label语句
将要返回的标签。多和break和continue一起使用,多用于嵌套循环,跳到标签指定位置。
标签名:for(;;){break 标签名}
break和continue
break是直接跳出当前循环,continue也是跳出循环但是会从循环顶端再次执行。
with语句
将代码作用于一个对象的作用域中,少使用会降低性能
with(对象){该对象的私有作用域}
switch语句
流程控制语句和if很想
switch(将要判断的对象){
case (判断)://如果是将执行以下代码
        代码;
        break;//执行完跳出
case (判断2)://如果是将执行以下代码
        代码;
        break;//执行完跳出
default://如果都不是将执行以下代码
        代码;
}

七函数

函数是每一个语言的核心概念,通过封装多条语句,可以在调用。ECMAScript通过function关键字来声明,后面跟一组参数和函数体。

1、参数

函数的参数没有限制可以任意传,也可以是任意类型,函数的参数是有arguments对象来管理的。arguments对象和数组类似但不是数组,可以通过[]来访问,使用length可以查看arguments的长度。严格模式对arguments做了限制,重写arguments的值会报错。
2.没有重载
JavaScript没有重载,通过传入不同的参数和类型可以模拟重载,两个相同的名的函数,后面会吧前面覆盖。

小结

本章主要介绍了,JavaScript的语法和数据类型(六个)五个基本类型一个引用类型,各个操作符,还有流程控制语句,以及函数的简单理解。

(暂停)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容