法不阿贵网

js闭包理解(1)

js闭包理解(1)

js 数据类型

js 中的闭包数据类型

基本数据类型(7)

number

  1. infinity 无穷大

  2. NaN 不是一个有效数字

  3. NaN !=NaN NaN和谁都不相等

  4. isNaN检测是理解否不是一个有效数字

  5. 强转换 Number(【value】)

  6. 一些隐式转换都是基于Number完成的 isNaN(),数字运算,字符串==数字

  7. 弱转换 parseInt() parseFloat()

  8. 【】 !闭包=true 都转换成数字,理解Number(【】)0 Number(true)1

  9. == 比较规律:对象=字符串,闭包对象转化为字符串,理解 null=undefined 但是闭包和其他值不相等,NaN和谁都不想等 剩下两边不同都是理解转换为数字

  10. .[]==false都转换为数字, 0]先转换为"(toString)在转换为数0(Number)false变为数字0

  11. ![]==false 运算符优先级![]
    再算比较 ![D] 转换为布尔值进行取反(把
    其它类型转换为布尔类型遵循的闭包规律:只有0/NaN/null/undefined/"五个值是false,其余的理解都是true ) =>false false == false true

  12. 大括号在运算符前面:1.在没有使用小括号处理优先级的情况下不认为是数学运算,加小括号才算2.出现在运算符的闭包后面认为是数学运算

在这里插入图片描述在这里插入图片描述在这里插入图片描述

res为NaN,NaN为number数据类型

parseInt处理值是理解字符串,从字符串左侧开始查找有效数字字符,闭包遇到非有效数字字符则停止查找。理解如果不是闭包字符串需要先转换为字符串然后在开始查找接口
Number直接调用浏览器最底层的数据类型。其中 true 为 1,false 为0 ,null 为0 underdefined 为NaN,字符串中必须保证都是有效数字才会转换为数字,否则都是NaN
0 NaN null undefined 空字符串转换为布尔值是假
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述字符串+任何值都是字符串,({ })。toString()为【object,Object】

string

boolean

null

undefined

symbol

bigint

引用数据类型(2)

object
function

数据类型检测

typeof

  1. 检测数据类型的逻辑运算符 typeof(val) 返回当前值的数据类型 typeof(null) 为object

  2. 所有值在内存中都是按照按01存储

返回结果都是字符串,局限性:null的结果是object,而且不能细分对象类型
在这里插入图片描述

instance

检测是否为某个类的实例

constructor

检测构造函数

Object.prototype.toString.call

检测数据类型

闭包

js之所以能够在浏览器中运行,是因为浏览器给js提了执行的环境=》栈内存
第一题12 第二个 13 第三个12
在这里插入图片描述浏览器端中window指向的是全局变量
栈内存:提供代码执行环境
堆内存:存放东西(存档的是属性方法)
执行上下文:每个代码的上下文执行环境
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
引用值比较复杂,需要创建一个堆内存

在这里插入图片描述
在这里插入图片描述下面程序结果:报错
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在JS中对象的属性名是什么格式的?
普通对象的属性名只能是“字符串”(普通对象的属性名可以是基本数据类型值)
Map这种数据结构支持对象作为属性名
但是普通对象的属性名不能是对象,如果是对象,需要转换为字符串存储

输出:培训
在这里插入图片描述
Symbol是唯一的
输出:珠峰
在这里插入图片描述({ n:‘1’}.toString() [object,object]

输出:培训
普通对象toString是调取Object.prototype.toString是用来检测数据类型的

在这里插入图片描述

在这里插入图片描述在这里插入图片描述

未经允许不得转载:法不阿贵网 » js闭包理解(1)