JavaScript的数据类型分为两类:原始类型和对象类型.其中,原始类型包括:数字.字符串和布尔值.此外,JavaScript中还有两个特殊的原始值:null和undefined,它们既不是数字也不是字符串,更不是布尔值.它们通常分别代表了各自特殊类型的唯一成员.JavaScript中除了数字.字符串.布尔值.null和undefined之外的就是对象了. JavaScript中值类型和引用类型的区别 JavaScript中的值类型的值是不可变的: 任何方法都无法改变值类型的值.数字.布尔值.…
JavaScript中=.==.===以及!=.!==的区别与联系   在JavaScript中,“=”代表赋值操作:“==”先转换类型再比较,“===”先判断类型,如果不是同一类型直接为false.其中“==”和“===”都可以用在布尔表达式中,但两者有很大的区别,下面对三者进行具体介绍: 一.“=”代表赋值,即将右边的值赋值到左边. 例子:表达式① x=“55”,表示将字符串类型的55赋值给变量x,即变量x也为字符串类型. 表达式② x=55,表示将数值类型的55赋值给变量x,即:变量x也为…
JavaScript中object和Object有什么区别,为什么用typeof检测对象,返回object,而用instanceof 必须要接Object呢 ———————————————————————————————————————————————————————————————————— 这个问题和我之前遇到的问题非常相似,我认为这里有两个问题需要解决,一个是运算符new的作用机制,一个是function关键字和Funtion内置对象之间的区别.看了一些前辈的博客和标准,这里帮提问者总结一…
在JavaScript中有三种声明变量的方式:var.let.const.下文给大家介绍js中三种定义变量的方式const, var, let的区别. 1.const定义的变量不可以修改,而且必须初始化. const b = 2;//正确 // const b;//错误,必须初始化 console.log('函数外const定义b:' + b);//有输出值 // b = 5; // console.log('函数外修改const定义b:' + b);//无法输出 2.var定义的变量可以修改,…
JAVA中String = null 与 String = ""的区别 笔者今天在Debug的时候发现的NPE(NullPointerException),辛辛苦苦地调试了半天,终于看出了究竟 源头就是出在了对String为null的调用上,这时会抛出NullPointerException 首先,笔者在前面的博客中提到了对字符串进行比较的方法.传送门,通过先阅读这篇文章,可能对以后的理解更有帮助. 下面介绍几个比较常见的错误写法 if(str == "") { /…
浅谈JavaScript中的null和undefined null null是JavaScript中的关键字,表示一个特殊值,常用来描述"空值". 对null进行typeof类型运算,返回的是"object",因此可以将null认为是一个特殊的对象值.用null可以表示数字,字符串和对象是"无值的". undefined undefined是预定义的全局变量,它的值就是undefined,它是变量的一种取值,表示变量没有初始化. 对undefin…
在JavaScript中存在这样两种原始类型:Null与Undefined.这两种类型常常会使JavaScript的开发人员产生疑惑,在什么时候是Null,什么时候又是Undefined? Undefined类型只有一个值,即undefined.当声明的变量还未被初始化时,变量的默认值为undefined. Null类型也只有一个值,即null.null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象. js 代码 var oValue; alert(oValue == undef…
在 Javascript中prototype属性的详解 这篇文章中,详细介绍了构造函数的缺点以及原型(prototype),原型链(prototype chain),构造函数(constructor),instanceof运算符的一些特点.如果对prototype和构造函数不熟悉,可以前往Javascript中prototype属性的详解 和 Javascript 中构造函数与new命令的密切关系 仔细的品味品味.先来做一个简单的回顾. 首先,我们知道,构造函数是生成对象的模板,一个构造函数可以…
在JavaScipt中==(相等)和===(严格相等,strick equality 也有译作“恒等”.“全等”)用于比较两个值是否相等,两个运算符允许任意类型的操作数.如果操作数相等则返回true,否则返回false.===也称作严格相等运算符,它用来检测两个操作数是否严格相等.==运算符称作相等运算符,它用来检测两个操作数是否相等,这里“相等”的定义非常宽松,可以允许进行类型转换.=赋值==相等===严格相等!=(不相等)和!==(不严格相等)运算符的检测是==和===运算符的求反.如果两个…
null在关系运算中的坑 & 关系运算符的隐式转换问题 注意: 比较运算符 和 相等运算符 的 ECMAscript 语法实现不同. 比较运算符 和 相等运算符 对数据进行了隐式转换, 相当于调用了 Number(), '' false 转换为 0: true 转换为 1. console.log('' >= 5); // false console.log('' < 5); // true 相当于 0 < 5 console.log('' == 0); // true cons…