最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

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

来源:动视网 责编:小采 时间:2020-11-27 21:08:52
文档

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

你必须知道的Javascript知识点之"字面量和对应类型"说明介绍_javascript技巧:代码示例: 代码如下: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 = n
推荐度:
导读你必须知道的Javascript知识点之"字面量和对应类型"说明介绍_javascript技巧:代码示例: 代码如下: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 = n


代码示例:
代码如下:
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。

代码示例
代码如下:
var date1 = new Date(2013,1,1);
var date2 = new Date(2013,1,1);
date1 == date2; //执行结果为false
date1 === date2; //执行结果为false

图片示意

规则3

引用类型和对应的值类型之间用“=="做比较运算时,会先进行类型转换,然后进行比较。

代码示例
代码如下:
var num1 = new Number(10);
var num2 = new Number(10);
num1 == 10; //执行结果为true
10 == num2; //执行结果为true

规则4引用类型和对应的值类型之间用“==="做比较运算时,始终返回false。

代码示例
代码如下:
var num1 = new Number(10);
var num2 = new Number(10);
num1 === 10; //执行结果为false
10 === num2; //执行结果为false

特殊的String类型
string是特殊的引用类型,javascript解释器遇到两个一样的字面量会未他们分配同一个内存地址,javascript本身也保持值语义(一旦创建不能修改)。
代码示例
代码如下:
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

图片示意

值类型的内存格局

代码示例

1 var num1 = 1;2 var num2 = 1;

图片示意

文档

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

你必须知道的Javascript知识点之"字面量和对应类型"说明介绍_javascript技巧:代码示例: 代码如下: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 = n
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top