JavaScript入门到再入门

  1. 基本语法
  2. 数据类型

基本语法

  1. 类型推导

  2. 变量提升

    解析代码(获取已声明的变量)->一行一行运行

    所有变量的声明语句会被提到代码头部

    例如:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    console.log(a);
    var a = 1;

    // 等价于
    var a;
    console.log(a);
    a = 1;

    //输出 undefined
  3. switch,case 的语句部分都可以用表达式

  4. ‘===’ 与 ‘==’

    === 不会发生类型转换

  5. continue, break 可跳至 label

  6. var 与 let 的区别:
    var 声明的变量在全局范围内有效,因为存在变量提升, let 声明的变量仅在块级作用域内有效.

例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for (var i = 0; i < 10; i++) {
(function() {
setTimeout(function timer() {
console.log(i);
}, 1000);
})();
} //打印结果为10个10

for (let i = 0; i < 10; i++) {
(function() {
setTimeout(function(){
console.log(i);
, 1000})
})();
} //打印0-10

数据类型

  1. typeof 运算符

    可以用来检查未声明的变量(return undefined)

  2. null 与 undefined

    区别:

    Number(null) -> 0 
    Number(undefined) -> NaN 
    
  3. 整数与浮点数
    所有数字都以64位浮点数存储.所以:

    1
    1 === 1.0 // true
  4. +0,-0

    除了做分母,与正常的0一样
    除以正0得+Infinity,除以-0的到-Infinity.

  5. Infinity (无穷,有正负之分), NaN (Not a Number)
  6. parselnt(strval) 也就是 atoi(string), 功能更强大一些, 有进制转换功能(第二个参数) 结果无意义返回NaN
  7. parseFloat(strval) String To Float 结果无意义返回NaN
  8. bool isNaN(value) 参数是数值,传入其他类型会进行类型转换
    实现方式: NaN是唯一不等于自身的值

    1
    2
    3
    function _IsNaN(value) {
    return value != value;
    }
  9. bool isFinite(value) 返回value 是否是正常的值(!Infinity)

  10. String Base64方法
    btoa(value) 任意值转为Base61的编码
    atob(value)Base61转为原来的值

  11. 对象属性可以命名为数字(自动转化为String)

script>