当前位置: 首页 > news >正文

学做网站论坛全部视频做昆特牌的网站

学做网站论坛全部视频,做昆特牌的网站,中信建设有限责任公司湖南省人防建筑设计院,做理财网站首先来看一个有意思的面试题#xff1a; if(a 3 a 4){//... }第一眼看到这个面试题我是拒绝的#xff0c;这个等式根本不会成立#xff0c;怎么会存在一个值既等于3并且还同时等于4呢#xff1f;根本不可能。 但是在神奇的javascript中这个a是存在的。…首先来看一个有意思的面试题 if(a 3 a 4){//... }第一眼看到这个面试题我是拒绝的这个等式根本不会成立怎么会存在一个值既等于3并且还同时等于4呢根本不可能。 但是在神奇的javascript中这个a是存在的。对javascript要永远怀着一颗敬畏的心 var i 3; var a new Object();a.valueOf function(){return i; }if(a 3 a 4){console.log(等式成立了); // 打印了 }简单一看这个面试题有点故弄玄虚谁会这样写代码我之前的想法 但是这其中的知识点很有用并且不是很好掌握。 其中的主要知识点就是宽松等于涉及到的隐式类型转换。在日常开发中总会被提醒尽量不要使用宽松等于在相等比较时尽可能的使用严格等于。但是为什么呢其实通过上面的面试题就可以看出来宽松等于太神奇了晦涩难懂莫名其妙坑太多当然这是对于不太了解宽松等于和类型转换的我来说的。接下来则会不自量力的尽力来解释一下类型转换和宽松等于。 首先对于 和 的区别常被解释为 并不检查数据类型 检查数据类型。但是这个说法并不完全正确。相对正确的说法是 允许数据进行类型转换而 并不允许。第一种说法貌似是 做了更多的事情但事实却不是这样的。 的几种情况分别是 两个值类型相同则比较值 1.1 NaN不等于自身 1.2 0 等于 -0 1.3 两个对象指向同一个值则相等不发生强制类型转换 1.4 对于对象的比较同1.3 数字和字符之间的比较 Boolean和其他之间的比较 对象和非对象之间的比较 #数字和字符串之间的比较 一个String类型值和一个Number类型值之间比较则将String类型值按照 转换为Number表转为Number类型。 var a 1; var b 1;console.log(a b); // true 字符‘1’被转换成了数字1再作比较则相等 console.log(a b); // false 并没有对字符1数据类型转换数据类型不同则不相等Boolean类型值和其他类型值之间的比较 一个Boolean类型值和一个其他类型值之间比较则首先将Boolean类型值转换为Number类型true是1而false是0。 var a true;console.log(a 1); // true转换成了数字1再作比较则相等Object和其他类型值之间的比较 一个Object类型值和一个其他类型值之间比较则将Object类型值按照如下步骤转化 该对象如果有valueOf方法则调用该方法若该valueOf的返回值是基本类型则用作比较若valueOf的返回值不是基本类型则调用toString方法若toString方法返回基本类型值则用作比较若toString返回值不是基本类型则报错 var a {valueOf: function(){return 1;},toString: function(){return 2;} };console.log(a 1); // true 调用a.valueOf获得返回值再比较var a {valueOf: function(){return 1;},toString: function(){return 2;} };console.log(a 1); // true以上代码当对象a和数字1作比较调用valueOf方法获得字符串‘1’这时变成了字符串’1’和数字1作比较根据字符串和数字比较的规则将字符串转换成数字等到数字1然后两个数字1作比较得出相等。 当没有valueOf方法或者valueOf方法不返回基本类型值的时候则调用toString方法。 var a {toString: function(){return 1} };console.log(a 1); // true到这里开篇的那道面试题则不难理解了宽松等于中对象和其他类型比较时涉及到了隐式强制类型转换首先会调用valueOf方法如果有必要还会调用toString方法来获取值来进行比较。 Null和Undefined之间的比较 在宽松等于比较中Null类型值只和自身还有Undefined类型值相等。 console.log(null undefined); // trueconsole.log(null false); // falseconsole.log(undefined false); // falseconsole.log(null ); // falseconsole.log(undefined ); // falseconsole.log(null 0); // falseconsole.log(null ); // false几个宽松等于的坑 console.log(![] []); // true // 取反的优先级高于 所以![]转为falsefalse转为0[]调用valueOf得到[]所以调用toString得到‘’然后转为0得到相等console.log(false []); // true //false转为 0[]根据上面的步骤转为0得到相等0 false; // true 注意0并不是假值但是这里却是相等的因为 false 转为 0变成了数字和字符比较字符串0转为了数字0得到相等宽松等于中值a与Boolean作比较并不是比较值a是否为真或假而是值a与转换过后的Boolean值0或1作比较。 参考 你不知道的javascript中卷
http://www.pierceye.com/news/631803/

相关文章:

  • 自助网站建设技术支持如何做网站代码
  • 企业数据查询网站word 没有安装wordpress
  • 注册一个设计公司需要多少钱重庆网站建设及优化
  • 青岛企业建设网站公司如何传图片做网站
  • 手机网站源码教程个人博客系统的设计与实现
  • 高端网站改版南京网站如何制作
  • 个人网站建设课程专业彩票网站开发 APP开发
  • 学网站开发首先学哪些基础兰州网站设计哪个平台好
  • 网站后台看不到部分内容桐庐建设局网站
  • 宁夏网站建设费用地址wordpress建站好用吗
  • 微信网站制作哪个好吕梁网站制作
  • 手机怎么制作自己的网站线上运营推广方案
  • 泉州企业制作网站wordpress上传顶部图像
  • php建立网站广州创意设计公司
  • 东营专业网站建设济南天桥区网站建设公司
  • 鹤壁做网站多少钱网站开发 简单留言板
  • 网站建设 阿里东莞seo建站优化公司
  • logo设计竞标网站wordpress攻击跳转
  • 专门做瑜伽的网站wordpress docker镜像
  • 中国航天建设集团有限公司网站wordpress建站 防攻击
  • 买邮箱的网站网站与系统对接图文方案
  • 网页和网站区别wordpress展示企业主题免费
  • 网站制作过程个人网站吗
  • gta5网站建设中温州建设局老网站
  • 凤岗仿做网站专业网站设计制作优化排名
  • 企业网站seo优化德国设计网站大全
  • 重庆网站制作公司电话whois域名查询
  • 六安网站自然排名优化价格自己做网站前端开发
  • 网站发布与推广怎么写广东省城乡建设厅网站
  • 用ipv6地址做网站访问上海网址推广