美文网首页
JS | 面试的知识点梳理(一)

JS | 面试的知识点梳理(一)

作者: 八宝君 | 来源:发表于2017-08-15 17:48 被阅读0次

最近在准备面试的事情,正好在通过视频学习,将视频中的一些知识点整理一下,写出来做个备忘录(虽然我自己还手动写了一份纸质笔记),(/ω\)

知识点一、变量类型和计算

变量类型

值类型 和 引用类型

值类型:特点是每个变量都会存储各自的值,不会相互影响。

var a =100;
var b = a;
a = 200;
console.log(b);    //  100

这里用的是Number类型,字符串类型和布尔类型也一样。


引用类型:特点是不同变量指针指向同一个对象,可以无限地扩展属性,比如这里是age,还可以加name,加sex等等(引用类型包括数组、对象、函数)

引用类型

区别:

值变量与引用变量的区别

在值变量中,变量ab各自分开占不同的内存,互不影响。
引用变量中,变量ab都指向同一个对象,改变b变量的值,会使得b变量指向的对象改变,因此a变量也同时发生变化。


为什么在引用变量中,var b = a; 不是将对象copy一份给b呢?因为引用类型是可以无限扩展属性的,如果a自己一份, 再copyb一份,当属性很多的时候,那么这个内存占用就很大了,而引用类型是为了让类型共同空间,指向同一个,这样内存只占用一处。

typeof 运算符

typeof运算符

一共六种类型,但是typeof只能区分值类型的详细类型,无法区分引用类型的详细类型,但可以区分出函数。
因为数组就没认出来啊。

变量计算-强制类型转换

1.字符串拼接

字符串拼接

2.==运算符

==运算符
第一个是将100转换成字符串'100'进行比较;
第二个是把数字0转换成false,空字符也转换成false,两者比较相等,所以结果为true
第三个是将nullundefined都转换成false,再比较相同,所以结果为true

3.if语句

if语句

这里面后两种情况都发生了强制类型转换。
b=100转换成了true,执行了d重新赋值的操作,所以d为30
c=''转换成了false,无法进入if语句,所以不执行里面的操作,d还是之前的30

4.逻辑运算符

逻辑运算符

相关文章

网友评论

      本文标题:JS | 面试的知识点梳理(一)

      本文链接:https://www.haomeiwen.com/subject/zirvrxtx.html