es2019

2020-02-19  本文已影响0人  孟媛的笔记
  1. 下载并安装node,node -v 检验版本。(node里已经包含了npm工具)
  2. 使用脚手架es10-cli初始化babel、webpack等配置。
    ①初始化项目es2019npx es10-cli create es2019
    ②切换到项目,并启动:cd es2019npm start
    脚手架-ES2019从入门到精通,搭建成功 🎉
    server is listen, http://localhost:8080
    http://localhost:8080

如果npm版本低,创建失败:



如何使用npm以及nrm管理源
https://www.imooc.com/article/254541


知识点

  1. 没有使用任何关键字定义的变量,无论是在任何作用域,均作为全局对象window的属性存在,全局属性可以被人为删除delete abcdelete window.abc,但不会随着作用域的消失而销毁。
  2. 全局变量不可以被人为删除,而全局属性可以被人为删除,delete abcdelete window.abc
  3. 局部作用域,指的是函数作用域。使用var定义的局部变量在函数执行完毕后也被销毁。
  4. letvar的区别:
    let是具有块级作用域的{},作用域不能由块级提升为全局,{}外不可以访问。
         var定义的变量,作用域可以由块级提升为全局,{}外也可以访问。
    let定义的变量均不可以以window.abc来访问。
         var定义的块级和全局变量可以以window.bcd来访问,var定义的局部变量不可以以window.bcd来访问。
    ③ 使用let定义的变量不可以被重复定义。
         使用var定义的变量可以被重复定义。
  5. 块级作用域:单纯的{}for循环、while循环、条件为真的if区域。
  6. const定义的是常量,在申明时必须初始化,后续不能修改。const其他性能和let一致。


数组的5种遍历

arr = [1,2,3,4,5]

console.log('-------for-------')
for(let i=0; i<arr.length; i++){
    console.log(arr[i])
}

console.log('-------foreach-------')
arr.forEach(element => {
    // if(item===2) continue    //不可用break或continue
    console.log(element)
});

console.log('-------every-------')
arr.every(function(item){
    if(item===5){
        return false   //相当于break
    }
    if(item===2){
        //相当于continue
    }else{
        console.log(item)
    }
    return true
})

console.log('-------forin-------')
for (const key in arr) {
    if (arr.hasOwnProperty(key)) {
        const item = arr[key];
        console.log(key, item)
    }
}

console.log('-------forof-------')
for (const iterator of arr) {
    console.log(iterator)     //遍历器可以自定义,后续章节
}


伪数组向数组的转换

为什么要转换,因为只有转换成数组对象才能调用Array的API。

//伪数组向数组转换,slice切片 (ES5)
//实现arguments到数组的转换(arguments是函数的不定参)
let args = [].slice.call(arguments)
//实现nodelist到数组的转换
let imgs = [].slice.call(document.querySelectorAll('img')) 

//Array.from()  (ES6)
//实现arguments到数组的转换(arguments是函数的不定参)
let args1 = Array.from(arguments)
//实现nodelist到数组的转换
let imgs1 = Array.from(document.querySelectorAll('img')) 


Array.from(ArrayLike, mapfn(v, k), thisArg)

//ArrayLike: 伪数组, mapfn(v, k): 遍历伪数组的函数, thisArg: this对象
let array = Array.from( {length: 5}, function(v,k){
    return k;  //给伪数组元素赋值
})
// 伪数组可以是具备索引的对象,另外有一个length属性:{0:'a', 1:'b', length:5}
console.log(array)    //(5) [0, 1, 2, 3, 4]

❓我没明白thisArg是干吗用的?以后用到了研究。

上一篇下一篇

猜你喜欢

热点阅读