js中对于数据类型的一些理解

Typeof的作用: 返回数据的类型

基本数据类型(Number String Boolean null undefined  es6种新增的一个基本数据symbol)

Let num = 22

Typeof num //Number

会返回对应的类型

但是有一个例外:null

Let num2 = null

Typeof num2 // Object

 

对于判断复杂数据类型(函数,对象,数组),都会返回Object

Let arr = [1,2,3]

Typeof arr //object

但是也有一个例外: 函数

Let fn = function() {}

Typeof fn // function

 

逻辑中断(逻辑短路)

&& 找假值,找到返回假值,后面不执行,没有找到,返回最后一个真值

||  找真值,找到返回真值,后面不执行,没有找到返回最后一个假值

 

||经常会被用于1.设置默认值  let width = width || 20

              2.兼容问题处理

window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop

 

比较运算符(===  ==)

1.===比较类型也比较值,比较严格

2.== 比较值

规则:1.先看有没有NaN,因为它不等于任何值,包括自己,有返回false

2.再看null和undefined,他们也不等于任何值,除了null和undefined

3.如果有数字和布尔,转化为数字比较

几个特殊的转布尔值: []:0  {}:NaN  false:0  true: 1  ‘’:0

4.再看有没有字符串和复杂数据类型,有转换字符串进行比较

5.如果都是复杂数据,比较地址

 

Js中的值类型和引用类型的理解

值类型:在变量中存储的是值本身

引用类型: 在变量中存储的是内存地址

注意:js里面没有特别明确的堆和栈的概念,而且js的实现,也不需要堆和栈的概念

posted @ 2019-07-05 11:33  王木木*  阅读(351)  评论(0编辑  收藏  举报