JavaScript学习笔记

JavaScript

  1. 严格区分大小写;
  2. 数据类型:
    • Number:不区分整数与浮点数;
    • 字符串:
    • 布尔值:
  3. 相等运算符:
    • ==:会自动转换数据类型再比较;
    • ===:不会自动转换数据类型,数据类型不一致则返回false;
    • NaN,表示Not a Number与所有其他值都不相等,包括自己;
  4. null:表示一个空的值,与0和空字符串''不同,0是一个数值,''表示长度为0的字符串,而null表示"空";
  5. undefined:表示"未定义";
  6. 数组定义方式, 索引起始值为0:
    • new Array(1, 2, 3);
    • 直接使用[], [1, 2, 4];
  7. 对象都是一组由键-值组成的无序集合,键都是字符串类型,如果键中含特殊字符,就必须用''括起来,访问时用['xxx']方式,值可以是任意数据类型,获取对象属性方式:对象变量.属性名
  8. 多行字符串:用反引号`...`表示;
  9. 模版字符串:自动替换字符串中变量,message = 'hello, ${name}, your age is ${age}'
  10. 字符串是不可变的,对字符串的某个索引赋值既不会引起错误,也不会改变字符串;
  11. 直接给Arraylength赋新值会导致Array大小的变化,可以通过索引改变对应元素的值,索引超过范围时同样引起Array大小的变化;
  12. push()向Array末尾添加若干元素,pop()把最后一个元素删除;
  13. unshift()Array头部添加若干元素,shift()删除第一个元素;
  14. splice():从指定索引开始删除若干元素,然后再从该位置添加若干元素;
  15. concat():将两个Array连接起来,返回一个新的Arrayjoin()Array的每个元素都用指定字符串连接起来,再返回连接后的字符串;
  16. 判断一个属性是否为对象自身所有,而不是继承得到,可用hasOwnProperty()方法;
  17. JS中把nullundefined0NaN和空字符串''视为false,其他都视为true
  18. Set是一组key的集合,不存储value,由于key不能重复,所以Set中没有重复的key,常用方法:adddelete
  19. Map是一组键值对的结构,具有极快的查找速度,初始化时需要一个二维数组,或者直接初始化一个空Map,常用方法:sethasdeleteget
  20. 遍历Array可用下标循环,遍历MapSet则无法使用下标,引入inerable类型(ArrayMapSet都属于)通过for...of循环来遍历;
  21. for...in遍历的是对象的属性名称,for...of循环的是集合本身的元素,更好的方式是使用内置的forEach方法,接受一个函数,每次迭代自动回调函数;
  22. let代替var可以申明一个块级作用域的变量;
  23. 对数组元素进行解析赋值时,多个变量要用[...]括起来,eg:let [x, [y, z]] = ['k', ['cunyu', 'chuzihang']]
  24. 指定函数的this指向哪个对象可用函数本身的apply方法,接受两个参数,第一个是需要绑定的this变量,第二个是Array,表示参数本身的参数;
  25. apply()把参数打包成Array再传入,call()把参数顺序传入;
  26. filter用于把Array的某些元素过滤调,然后返回剩下的元素;
  27. 自带sort函数是按照ASCII的大小比较的;
  28. 返回闭包时,返回函数不要引用任何循环变量或者后续会发生变化的变量;
  29. 箭头函数,相当于匿名函数,含多个参数时,要用()括起来;

你可能感兴趣的:(JavaScript学习笔记)