语法:
-
区分大小写
-
标识符
- 指变量、函数、属性的名字,或者函数的参数。
- 第一个字符——必须是字母、下划线、或者美元$符号
- 其他字符可是是字母、数字、下划线、$等。
- 一般采用驼峰命名命名法(readBookAll)。
-
注释
- 单行注释:// ..........................
- 多行注释:/*。。。。。。*/
-
严格模式
- use strict
- 整个脚本采用严格模式,可在顶部文件中添加该代码。也可以指定函数在严格模式下执行。
" user strict"
关键词和保留字
-
关键字
-
用户控制语句的开始或者结束,或者用于之子那个某个操作。不可以用作标识符。
-
break\do\instanceof\typeof\var\case\else\new\catch等等
-
-
保留字
- 无特定用途,有可能以后被用来作为关键字
- abstract\enum\int\short\export\final\public\const\let\yield等等
-
备注
- 如果使用关键字作为标识符,会导致“Identifier Expected”,如果使用保留字不会出现该问题。
- 除此之外,eval/arguments也不可以作为标识符。
数据类型
-
typeof操作符——检测给定变量的数据类型。
- undefined——值没定义
- boolean——布尔值
- string——字符串
- number——数值
- object——对象或者null
- function——函数
-
undefined
- 变量已经声明但是没有初始化。
- 对于声明没有定义,以及没有声明直接使用的,typeof都为undefined。
-
null
- 空对象指针
- typeof = object
- 如果定义的变量用来储存对象,可初始化为:null.
- null == undefied 为 true
-
boolean
- true不一定为1,false不一定为0。true,false区分大小写。
- 0、NaN = false,null = false,"" = false,undefied = false,任何对象都为true。
-
number
- 浮点数值
- 储存空间是整数值的两倍,因此ECMAScript一般会自动将浮点数转换为整数值。(小数点后无数字)
- 最高精度是17位小数。
- 精确度不如整数(0.1 + 0.2 == 0.3 ——false)。0.1+0.2 = 0.30000000000000004;
- 浮点数值的计算会产生舍入误差的问题,一般不会将浮点数值计算作为筛选条件。
- 数值范围
- 最小值:Number.MIN_VALUE(5e-324);最大值:Number_MAX_VALUE(1.7976931348623157e + 308);(_Infinity, Infinity)
- isFinite(),在最大最小两值之间为true。
- NaN
- 表示本俩返回数值但是没有返回数值的情况。
- 0/0 = NaN;正数/0 = Infinity;负数/0 = -Infinity;
- 任何涉及NaN的操作,都会返回NaN
- NaN == NaN 为false
- isNaN()函数,也适用于对象。
- 对象调用isNaN时候,会首先调用对象的valueOf方法,确定方法返回值是否可以转为数值,如果不能的话,则基于这个返回值再调用toString方法,测试返回值。这个过程就是ECMAScript中内置函数和操作符的一把执行流程。
- 数值转换
- Number()
- true=1,false=0
- null= 0
- undefined = NaN
- 字符串
- ‘011 ’ = 11
- ‘123’ = 123
- ‘123Bshdj’ = 123
- '1.23' = 1.23
- '0xf' = 十进制数值
- 'asvabsn' = NaN
- ' ' = 0
- 对象
- valueOf - toString——无返回值为NaN。
- parseInt()
- 常用于转换字符串,整数。(Number()转换字符串逻辑较复杂)
- 它会忽略前面的空格,直接查找第一个非空字符,大部分返回值与Number类似。
- ' ' = NaN
- parseInt第二个参数,指定基数(几进制之类的)。(16、8)
- parseInt('AF', 16) = 175;parseInt('AF') = NaN
- parseFloat
- 只解析十进制,无第二个参数,作为基数。
- 十六进制始终解析为0
- Number()
- 浮点数值
-
String
- 字符字面量
- 也叫转义序列,用于表示非打印字符,或者具有其他用途的字符。
- \n 换行
- \t 指表
- \b 空格
- \r 回车
- \f 进纸
- \\斜杠
- \' 单引号 \''双引号
- \xnn 以十六进制代码n表示一个字符,\x41 = A
- \unnnn 以十六进制代码nnnn表示一个字符,\u03a3 ;
- 6个字符长的转义序列表示一个字符。'\u03a3'.length = 1
- 转换为字符串
- toString()
- undefined null 没有toString()方法。
- String()
- 本身存在toString方法的直接调用进行转换即可。
- String(undefined) = undefined
- String(null) = null
- 加号操作符
- toString()
- 字符字面量
-
object
- var o = new Object()
- constructor——保存着用于创建当前对象的函数,比如:Object()。
- hasOwnProperty——用于检查给定属性是否在当前对象实例中。参数为字符串。o.hasOwnProperty('name')
- isPrototypeOf(object)——用于检查传入的对象是都是传入对象的原型。
- propertyIsEnumberable——用于检查给定属性是否能够使用for-in语句来枚举。参数字符串。
- toLocalString——返回对象的字符串
- toString ——返回对象的字符串
- valueOf ——返回对象的字符串、数值、布尔值,通常与toString返回值一样。