读《JavaScript百炼成仙》感悟 记一

479 阅读2分钟

笔者自身是混了3年的前端开发,但是代码质量偏差,并且基础不扎实,所以在最近一次辞职后决定从头开始学习一遍温故知新,并且刚好遇到《JavaScript百炼成仙》这本书,决定通过这本书来巩固自身,读出来的感悟可能会让一些同行们对笔者产生鄙视,不过笔者觉得还是有必要记录一下,不喜请退出,window.close()感谢

数据类型

  1. 原生数据类型
    1. number型
    2. String型
    3. Boolean型
    4. null
    5. undefined
  2. 对象数据类型
    1. object

数组Api

  1. Arr[i]
  2. Arr.push(data)
  3. Arr.pop()删除数组的最后一项,会改变原数组
  4. Arr.splice(arg1,arg2,arg3)
    1. arg1是代表从数组的第几项开始查询
    2. arg2是表示查询多少个
    3. arg3是选传参数,可用于插入,不传可以删除前面选中的那几项
  5. Arr.join(data)根据传入的data作为分隔符将数组转成字符串并用data拼接

函数

  1. function myFun () {}
  2. var a = function () {}
  3. 以上两种声明函数的方式有一定的区别,第一种会直接被定义,所以在代码里面会有全局提升的能力,但是第二种是最开始先执行了var a,在编译器里面会先进行声明变量操作,所以只有var会被全局提升,而匿名函数的加载是通过被赋值去定义的,所以函数并不会被全局提升

此处可以参考JavaScript的编译原理 1. 分词 2. 解析 解析后生成了语法树(AST)然后编译js,然后才开始运行js,AST内部有十分详细的代码编译后的结构 3. 代码生成

  1. 参数 arguments伪数组是函数内部自身的属性
    1. 具有length属性
    2. 按索引方式存储数据
    3. 不具有数组的方法, 比如push(),pop()等 可以通过查询arguments来得知传入的所有参数,包括多传入的实参也可以在里面查询到,用于维护代码

目前就看了这么多,由于手记笔记的字实在是太惨不忍睹了,所以上传到掘金