Javascript中两个等于号和三个等于号的区别(==/===)

==//表示值的比较

===//表示对象类型的比较

1、对于string,number等基础类型,==和===是有区别的。

a)不同类型间比较,==之比较“转化成同一类型后的值”看“值”是否相等,===如果类型不同,其结果就是不等。

b)同类型比较,直接进行“值”比较,两者结果一样。

alert(‘1‘==1);//结果是true
alert(‘1‘===1);//结果是false

2、对于Array,Object等高级类型,==和===是没有区别的。

进行“指针地址”比较。

3、基础类型与高级类型,==和===是有区别的。

a)对于==,将高级转化为基础类型,进行“值”比较。

b)因为类型不同,===结果为false。

var a = new String(‘1‘);//定义一个string的高级类型
var b = ‘1‘;//定一个基础类型字符串
alert(b==a);//为true
alert(b===a);//为false

参考:https://zhidao.baidu.com/question/564655390.html

时间: 2024-10-11 12:06:32

Javascript中两个等于号和三个等于号的区别(==/===)的相关文章

JavaScript中两种类型的全局对象/函数(转)

转自:http://www.cnblogs.com/snandy/archive/2011/03/19/1988626.html 这里所说的JavaScript指浏览器环境中的包括宿主环境在内的.第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象 这些对象在程序执行之前就已经(实例化)存在了.ECMAScript称为The Global Objec

Javascript中两种最通用的定义类的方法

在Javascript中,一切都是对象,包括函数.在Javascript中并没有真正的类,不能像C#,PHP等语言中用 class xxx来定义.但Javascript中提供了一种折中的方案:把对象定义描述为对象的配方(先看一下例子会比较容易理解).定义类的方法有很多种,这里有两中较为通用的方法,大家参考一下.这两种方法均可以解决 构造函数会重复生成函数,为每个对象都创建独立版本的函数的问题.解决了重复初始化函数和函数共享的问题??提示音:http://www.huiyi8.com/tishiy

JavaScript中两种类型的全局对象/函数

这里所说的JavaScript指浏览器环境中的包括宿主环境在内的. 第一种是ECMAScript Global Object,第二种是宿主环境(Host)下的全局对象/函数. 一.核心JavaScript内置对象,即ECMAScript实现提供的不依赖于宿主环境的对象 这些对象在程序执行之前就已经(实例化)存在了.ECMAScript称为The Global Object,分为以下几种 1, 值属性的全局对象(Value Properties of the Global Object).有NaN

在 javascript 中,为什么 [1,2] + [3,4] 不等于 [1,2,3,4]?

问题 我想将一个数组追加到另一个数组的后面,于是我在 firebug 编写如下代码: [1,2] + [3,4] 但是,出乎意料,它却输出了: "1,23,4" 而没有输出我期望的: [1,2,3,4] 解答 JavaScript 的 + 运算符有两个目的: 将两个数相加: 将两个字符串连接. 规范并没有定义 + 运算符在数组上的行为,所以javascript 首先 把数组转换成字符串,然后在字符串上进行 + 运算. 如果想连接两个数组,可以使用数组的 concat 方法: [1, 2

javascript中两种定义函数方式的差别以及函数的预编译效果

我们知道在javascript中定义函数的方式有以下两种: function mm(){ } 这种形式是声明一个函数,跟 var 声明一个变量机制一样,脚本在解释执行之前会做预编译处理. var mm = function(){ } 这种形式是对一个变量赋值,虽然也做预编译,但仅仅只是给 mm 事先变量分配一个内存空间,而没有做初始化. 代码1: alert(a);//打印函数a的内存 alert(b);//undefined alert(c);//JS报错:"c"未定义 functi

javascript中两种基本常用排序算法分析

备注:内容大部分从网上复制,代码为自己手写.仅做知识的温故知新,并非原创. 1.冒泡排序(Bubble Sort) (1)算法描述 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成.这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端. (2)算法描述和实现 具体算法描述如下: <1>.比较相邻的元素.如果第一个比第二个大,就交换它们两个: &l

JavaScript中两个数组的拼接

方法一:使用for循环 var arr = ['tom', 'jerry']; var arr2 = [1, 2]; for(var i=0; i<arr2.length; i++){ arr.push(arr2[i]) } console.log(arr); // ['tom', 'jerry', 1, 2] 方法二:使用concat(),注意concat()方法生成了一个新的数组,并不改变原来的数组. var arr = ['tom', 'jerry']; var arr2 = [1, 2]

关于C#中数组、ArrayList与List三个对象的使用区别

我们在使用c#开发中,经常使用到数组,ArrayList,List这三个对象了.那么这三者到底有什么样的区别呢? 先看看参考文章:http://www.codes51.com/article/detail_98821.html 好,现在我们先来了解一下数组,因为数组在C#中是最早出现的. 数组 数组有很多的优点,比如说数组在内存中是连续存储的,所以它的索引速度是非常的快,而且赋值与修改元素也很简单,比如: string[] s=new string[3]; //赋值 s[0]="a";

QT中LineEdit、TextEdit 、PlainTextEdit 三个控件的区别

QLineEdit是单行文本输入,一般用于用户名.密码等少量文本交互地方.QTextEdit用于多行文本,也可以显示HTML格式文本.QPlainTextEdit与QTextEdit很像,但它多用于需要与文本进行处理的地方,而QTextEdit多用于显示,可以说,QPlainTextEdit对于plain text处理能力比TextEdit强.