如果你又问,为什么会隐式类型转换呢,那我只能回答:这是js语言本身的特性,内部约定的。
隐式类型转换是遵循一定原则的
1. 两个数字比较时是不存在隐式类型转换的
2. 数字和非数字比较时,会将非数字的一方隐式转换成数字,然后进行比较。
3. 两个字符串进行比较时, 会将其第一个字母转成对应的ASCII,然后进行比较, 比如 'a' >'b', 会先将a 和 b 分别转换为其ASCII值: 97, 98, 因为 97 小于98,所以 'a' >'b' 为 false。
4. 两个boolean 类型比较时,true会被转换成1,false 会被转换为 0。
5. 两个对象进行比较时,会先调用其 valueOf方法,然后再进行比较。
基本就这些了,更多这方面的知识,需要你自己去加深了解了。
==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase。
举例说明:
"1" == true类型不同,"=="将先做类型转换,把true转换为1,即为 "1" == 1;此时,类型仍不同,继续进行类型转换,把"1"转换为1,即为 1 == 1。
1.如果比较:"1" === true 左侧为字符型,右侧为bool布尔型或int数值型,左右两侧类型不同,结果为false;
2.如果比较: 1 === 1 左侧为int数值型,右侧为int数值型,左右两侧类型相同,数值大小也相同,结果为true;
3.如果比较: 1 === 2 左侧为int数值型,右侧为int数值型,左右两侧类型相同,但数值大小不同,结果为false。
扩展资料:
JavaScript脚本语言具有以下特点:
1.脚本语言。JavaScript是一种解释型的脚本语言,C、C++等语言先编译后执行,而JavaScript是在程序的运行过程中逐行进行解释。
2.基于对象。JavaScript是一种基于对象的脚本语言,它不仅可以创建对象,也能使用现有的对象。
3.简单。JavaScript语言中采用的是弱类型的变量类型,对使用的数据类型未做出严格的要求,是基于Java基本语句和控制的脚本语言,其设计简单紧凑。
4.动态性。JavaScript是一种采用事件驱动的脚本语言,它不需要经过Web服务器就可以对用户的输入做出响应。
5.跨平台性。JavaScript脚本语言不依赖于操作系统,仅需要浏览器的支持。
参考资料:百度百科:js
javascript 里 '=' 是赋值符if条件语句里是'=='(等号)或者'==='(全等号)if(a == b){........}或者if(a === b){..........}如果if(a = b){},这样的话条件返回值一直为true