[ 前端基础知识学习 ] Day 5

[ 前端基础知识学习 ] Day 5 学习目标学习JavaScript基础知识学习内容JavaScript的数据类型学习产出1.变量提升JavaScript 引擎的工作方式是先解析代码获取所有被声明的变量然后再一行一行地运行。这造成的结果就是所有的变量的声明语句都会被提升到代码的头部这就叫做变量提升hoisting。2.数据类型2.1 null 、undefined、布尔值null是一个表示“空”的对象转为数值时为0undefined是一个表示“此处无定义”的原始值转为数值时为NaN。布尔值就两个值true和false除了null, undefined, 0, NaN, false, ‘’, 在预期为布尔值的位置上会被转换成false外其他全部转换成true。2.2 数值JavaScript 语言的底层根本没有整数所有数字都是小数64位浮点数。parseInt方法用于将字符串转为整数parseFloat方法用于将字符串转为浮点数isNaN方法可以用来判断一个值是否为NaNisFinite方法返回一个布尔值表示某个值是否为正常的数值2.3 字符串就记一个length属性得了2.4 对象对象就是一组“键值对”key-value的集合是一种无序的复合数据集合对象的所有键名都是字符串ES6 又引入了 Symbol 值也可以作为键名属性可以动态创建不必在对象声明时就指定如果不同的变量名指向同一个对象那么它们都是这个对象的引用也就是说指向同一个内存地址。修改其中一个变量会影响到其他所有变量属性的读取或赋值都可以使用点.或者方括号[ ]属性的查看用key删除用delete 是否存在用in遍历用for…in2.5 函数声明function存在函数名提升name返回函数名length返回函数预期传入的参数个数toString()返回函数源码函数执行时所在的作用域是定义时的作用域而不是调用时所在的作用域函数参数如果是原始类型的值数值、字符串、布尔值传递方式是传值传递passes by value也就是说在函数里面改值是不会影响外面的变量的值的但是如果是复合类型的值数组、对象、其他函数传入函数的原始值的地址因此在函数内部修改参数将会影响到原始值。同名参数取最后⭐ 闭包封装对象的私有属性和私有方法可以让函数外部读取函数内部的值记录下函数被创建的状态立即调用的函数表达式var f function f(){ return 1}();2.6 数组特殊的对象所以对象有的它都有除了for…in可以遍历之外还有forEach遍历不会跳过数组的空位