ES6 学习奠基

一. 变量提升

函数声明和变量声明总是会被解释器 “提升” 到方法体的最顶部。
函数体内的变量也会被迫提升
for if 中的变量声明也会被迫提升, 故全局变量很容易产生

二. 标签 (goto)

任意不是保留字的字符串都可以作为标签, 比如 top, 当程序运行到不带冒号的 top 时, 会跳转到 top: 的位置

三. 数据类型

  1. 对象

  1. 函数

函数也是数据类型的一种

2.1. 函数和类一样, 有属性和方法

2.2. 函数的立即调用

  1. 数组
    3.1 数组中 length 不仅可以查看长度, 还能控制长度
    3.2 in 表达式判断键是否村子啊
    3.3 forEach 可以循环键值对类型的数组
    3.4 数组空位 hole [1, , 2], 默认会被 foreach 循环 for in 循环跳过, 但是用 undefined 占位则不会被跳过

四. 运算符

1 加号
使用加号运算时, 数值型遇见对象, 布尔, 字符串都会被自动转换成字符串相拼接

2 布尔
undefined
null
false
0
NaN
以上都视为 false

3 二进制位运算 与或非

位运算符直接处理每一个比特位(bit),是非常底层的运算,速度极快,但是很不直观

位运算符只对整数起作用,如果一个运算子不是整数,会自动转为整数后再执行。另外,在 JavaScript 内部,数值都是以64位浮点数的形式储存,但是做位运算的时候,将以32位带符号的整数进行运算,并且返回值也是一个32位带符号的整数

上面表达式对3进行二进制否运算,得到-4。之所以会有这样的结果,是因为位运算时,JavaScirpt 内部将所有的运算子都转为32位的二进制整数再进行运算。

3的32位整数形式是00000000000000000000000000000011,二进制否运算以后得到11111111111111111111111111111100。由于第一位(符号位)是1,所以这个数是一个负数。JavaScript 内部采用补码形式表示负数,即需要将这个数减去1,再取一次反,然后加上负号,才能得到这个负数对应的10进制值。这个数减去1等于11111111111111111111111111111011,再取一次反得到00000000000000000000000000000100,再加上负号就是-4。考虑到这样的过程比较麻烦,可以简单记忆成,一个数与自身的取反值相加,等于-1。

对字符串进行二进制否运算,JavaScript 引擎会先调用Number函数,将字符串转为数值。

借此, 一个数值字符可以通过两次取非而转成整形

五. 错误处理

和其他语言一样, 各种内置错误, 还有 try catch 语句

JavaScript 会自动添加句末的分号

六. consloe 对象

  1. log
    console.log 可以和 c 的 printf 一样使用

  1. console.warn(),console.error()

  2. console.table
    复杂类型输出成表格!!

  3. count
    计算调用次数

  4. 计算时间差
    console.time(),console.timeEnd()

  5. 调试 debugger

Hello world!
文章已创建 196

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部