2.1、 重学前端-笔记

JS部分

1、undefined和null
首先js的undefined是一个变量,并非关键字,是一个设计失误。undefined表示从未赋值的自然状态,null表示定义了但是是空。
2、字符串是UTF16
3、number(264-253+3),符合IEEE745双精度浮点数
4、Symbol,一切非字符串的对象key的合集


    var o = new Object

    o[Symbol.iterator] = function() {
        var v = 0
        return {
            next: function() {
                return { value: v++, done: v > 10 }
            }
        }        
    };

    for(var v of o) 
        console.log(v); // 0 1 2 3 ... 9

5、类型判定和转换


2.1、 重学前端-笔记_第1张图片
image.png

判断数组的方法

// 装箱转换,基本类型转换为对应的对象,Array天生是对象
1. arr isntanceof Array
2.arr.__proto__  === Array.prototype
// 每一类装箱对象皆有class属性
3.  arr.constructor === Array
4.  Object.prototype.toString.call(arr) === '[object Array]'
5.  Array.isArray(arr)

6、js对象两类属性
数据属性:value\writable\enumerable/configurable
访问器属性:getter\setter\enumerable/configurable

7、js原型
Object.create 根据指定的原型创建新对象,原型可以是 null;
Object.getPrototypeOf 获得一个对象的原型;Object.setPrototypeOf 设置一个对象的原型。

8、内置对象


2.1、 重学前端-笔记_第2张图片
image.png

9、事件循环,宏任务,微任务
Promise 产生的是 JavaScript 引擎内部的微任务,而 setTimeout 是浏览器 API,它产生宏任务。

你可能感兴趣的:(2.1、 重学前端-笔记)