源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

你必须知道的Javascript知识点之"字面量和对应类型"说明介绍

  • 时间:2022-04-12 08:11 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
代码示例:
[u]复制代码[/u] 代码如下:
var date1 = new Date(2013,1,1);  var date2 = new Date(2013,1,1);  date1 == date2;  //执行结果为false  date1 === date2;  //执行结果为false  var num1 = new Number(10);  var num2 = new Number(10);  num1 == num2;  //执行结果为false  num1 === num2;  //执行结果为false  num1 == 10;  //执行结果为true  10 == num2;  //执行结果为true  num1 === 10;  //执行结果为false  10 === num2;  //执行结果为false
之所以要写这个主题,是因为日期类型的比较经常会出现意想不到的错误,几乎每个刚接触javascript的开发人员都会遇到这个问题。 到底是为什么 规则1 javascript中一切都是对象(引用类型),除了这几个类型的字面量(值类型):Boolean(如:true)、Number(如:100)、undefined、null。 规则2 引用类型之间用"=="或“===”做比较运算时,只要两者不是指向同一份内存地址,都会返回false。 代码示例
[u]复制代码[/u] 代码如下:
var date1 = new Date(2013,1,1); var date2 = new Date(2013,1,1); date1 == date2;  //执行结果为false date1 === date2;  //执行结果为false
图片示意 [img]http://files.jb51.net/file_images/article/201304/2013042310031725.png[/img] 规则3 引用类型和对应的值类型之间用“=="做比较运算时,会先进行类型转换,然后进行比较。 代码示例
[u]复制代码[/u] 代码如下:
var num1 = new Number(10);   var num2 = new Number(10);   num1 == 10;  //执行结果为true   10 == num2;  //执行结果为true
规则4引用类型和对应的值类型之间用“==="做比较运算时,始终返回false。 代码示例
[u]复制代码[/u] 代码如下:
var num1 = new Number(10);   var num2 = new Number(10);   num1 === 10;  //执行结果为false   10 === num2;  //执行结果为false
特殊的String类型 string是特殊的引用类型,javascript解释器遇到两个一样的字面量会未他们分配同一个内存地址,javascript本身也保持值语义(一旦创建不能修改)。 代码示例
[u]复制代码[/u] 代码如下:
var str1 = new String('hello');  var str2 = new String('hello');  var str3 = 'hello';  var str4 = 'hello';  str1 == str2  //指向结果为false  str1 === str2  //指向结果为false  str3 == str4  //指向结果为true  str3 === str4  //指向结果为true  str2 == str4  //指向结果为true  str2 === str4  //指向结果为false
图片示意 [img]http://files.jb51.net/file_images/article/201304/2013042310031726.png[/img] 值类型的内存格局 代码示例
1 var num1 = 1;2 var num2 = 1;
图片示意 [img]http://files.jb51.net/file_images/article/201304/2013042310031727.png[/img]
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部