网站运营预期效果,石家庄seo网站排名,微信推广文案范文,广东东莞区号JS 中如何进行数据类型的转换#xff1f;
类型转换可以分为两种#xff0c;隐性转换和显性转换
显性转换
主要分为三大类#xff1a;数值类型、字符串类型、布尔类型 三大类的原始类型值的转换规则我就不一一列举了 数值类型#xff08;引用类型转换#xff09;
Numbe…
JS 中如何进行数据类型的转换
类型转换可以分为两种隐性转换和显性转换
显性转换
主要分为三大类数值类型、字符串类型、布尔类型 三大类的原始类型值的转换规则我就不一一列举了 数值类型引用类型转换
Number({a: 1}) // NaN
Number([1, 2, 3]) // NaN
Number([5]) // 5第一步调用对象自身的valueOf方法。如果返回原始类型的值则直接对该值使用Number函数不再进行后续步骤。第二步如果valueOf方法返回的还是对象则改为调用对象自身的toString方法。如果toString方法返回原始类型的值
则对该值使用Number函数不再进行后续步骤。第三步如果toString方法返回的是对象就报错。补充一点valueOf和toString方法都是可以自定义的
复制代码
字符串类型引用类型转换
String({a: 1}) // [object Object]
String([1, 2, 3]) // 1,2,3String方法背后的转换规则与Number方法基本相同只是互换了valueOf方法和toString方法的执行顺序。
复制代码
隐性转换
类型转换前转换后number44string11string0booleantrue1booleanfalse0undefinedundefinedNaNnullnull0
闭包
闭包是指有权访问另一个函数作用域中的变量的函数 ———— 《JavaScript高级程序设计》 闭包用途 能够访问函数定义时所在的词法作用域阻止其被回收私有变量化模拟块级作用域创建模块 闭包缺点闭包调用函数的变量并且这个变量在函数执行完之后不能释放会导致函数的变量一直保存在内存中过多的闭包可能会导致内存泄漏。 解决变量设置成null
原型和原型链
原型
每个对象都有一个 proto 属性该属性指向自己的原型对象每个构造函数都有一个 prototype 属性该属性指向实例对象的原型对象原型对象里的 constructor 指向构造函数本身
原型链
当试图访问一个对象的属性时它不仅仅在该对象上搜寻还会搜寻该对象的原型以及该对象的原型的原型依次层层向上搜索直到找到一个名字匹配的属性或到达原型链的末尾null