`
talentvictor
  • 浏览: 32449 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript语法的问题:严格等于和等于区别

    博客分类:
  • js
阅读更多
The Undefined type 未定义类型the Undefined type has only one value, undefined. When a variable is declared and not initialized, it is given the value of undefined by default.
未定义类型,只有一个值undefined只要你定义了变量没有赋值,那么它的值就是undefined

The Null type 空类型Another type with just one value, the Null type, has only the special value null, which is also its literal. The value undefined is actually a derivative of the value null, so ECMAScript defines them as equal to each other.
空类型也只有一个值null,未定义类型的值undefined 其实是空类型值null的一个衍生值,所以ECMAScript定义他俩相等

Equal and not equal 等于和不等于The equal operator in ECMAScript is the double equal sign (==), and it returns true if—and only if—both operands are equal. The not equal operator is the exclamation point followed by an equal sign (!=), and it returns true if—and only if—two operands are not equal. Both operators do conversions in order to determine if two operands are equal. 等于和不等于用法和其他类型语言大致相同,但是又有很多不同,比如,你在比较相同的字符数字和数字类型数字式会“自动转换”后比较。

毕竟JS是弱类型语言,一些特例在下面
1.null == undefined true
2.“NaN” == NaN false
3.5 == NaN false
4.NaN == NaN false
5.NaN != NaN true
6.false == 0 true
7.true == 1 true
8.true == 2 false
9.undefined == 0 false
10.null == 0 false
11.“5” == 5 true
Identically equal and not identically equal全等(值和类型)和不全等The brothers of the equal and not equal operators are the identically equal and not identically equal operators. These two operators do the same thing as equal and not equal, except that they do not convert operands before testing for equality. The identically equal operator is represented by three equal signs (===) and only returns true if the operands are equal without conversion. 一句话解释:用===和!==,比较前做比较的值不会做转换。

至于内存地址比较说,我不敢苟同,JavaScript是弱类型,虽然分着几个类型的,如String,Number,Boolean,Object,我个人认为,==和===都应该是值比较,至于用==产生的特例情况应当是ECMAScript设计之初就加进去的特性,===是instanceof && ==
也就是说===更符合强类型语言规范

附送一个(==)转换规则 When performing conversions, follow these basic rules:

❑ If an operand is a Boolean value, convert it into a numeric value before checking for equality.A value of false converts to 0; whereas a value of true converts to 1.

❑ If one operand is a string and the other is a number, attempt to convert the string into a number before checking for equality.

❑ If one operand is an object and the other is a string, attempt to convert the object to a string (using the toString() method) before checking for equality.

❑ If one operand is an object and the other is a number, attempt to convert the object to a number before checking for equality.
分享到:
评论

相关推荐

    javascript 语法教程及实例

    它在1995年由Netscape公司的Brendan Eich创造,最初名为LiveScript,后因Java的流行而更名为JavaScript,尽管名字相似,但它与Sun公司的Java语言在语法和设计理念上有着显著的区别。 JavaScript 主要特点: 1. **...

    让人蛋疼的JavaScript语法特性

    JavaScript是一种强大的、灵活的脚本语言,但它也有一些让人头疼的语法特性。以下是一些示例题目,它们展示了JavaScript中的一些不寻常的行为。 1. `typeof arguments` 的问题: 在JavaScript中,`arguments` 是一...

    使用JSLint完成JavaScript语法检查

    本文将深入探讨如何使用JSLint进行JavaScript语法检查,并介绍相关知识点。 JSLint是由Douglas Crockford开发的一款开源工具,它的主要目标是发现代码中的语法错误、潜在的逻辑问题以及不符合编码规范的部分。通过...

    Javascript 严格模式详解

    在JavaScript中,**严格模式**(strict mode)是ECMAScript 5引入的一种新特性,旨在改善语言的一些不足,提高代码质量和安全性,以及为未来的JavaScript版本铺平道路。严格模式的启用不仅能够帮助开发者避免一些...

    JavaScript语法和对象速查手册 .陈冠军.扫描版

    不过,依据标题《JavaScript语法和对象速查手册》和描述,我们可以详细探讨JavaScript的语法和对象相关的知识点。 JavaScript是一种广泛使用的脚本语言,它被内置在大多数的现代网页浏览器中,用于实现网页的动态...

    javascript语法速查手册

    以上内容涵盖了JavaScript的基础语法,但JavaScript的生态系统庞大且不断更新,如Node.js的服务器端编程、React和Vue等框架的应用、Web API的使用等都是进一步学习的方向。理解并熟练掌握这些基本概念,将为你的...

    JavaScript学习基础学习心得

    在深入探讨JavaScript的基础深度原理之前,我们首先了解JavaScript的一些基本概念,这将有助于我们更好地理解和应用这些高级知识点。 #### 浏览器组成 浏览器是JavaScript运行的重要环境之一,了解其内部结构对于...

    JavaScript 语法基础教学课件.ppt

    JavaScript语法基础是学习编程的重要部分,它涉及到多个关键概念。 首先,我们需要理解JavaScript的基本用途。JavaScript允许开发者在用户的浏览器上运行代码,实现如表单验证、页面动画、动态内容更新等功能。在...

    JavaScript程序设计-JavaScript基本语法.pdf

    JavaScript是一种广泛应用于网页和网络应用的脚本语言,它的基本语法是学习JavaScript程序设计的基础。在JavaScript中,有几个关键的概念需要理解。 首先,JavaScript严格区分大小写。这意味着在编写代码时,...

    4.JavaScript基础语法.zip

    JavaScript语法的基础部分包括变量、数据类型、操作符、流程控制和函数等。 1. 变量:在JavaScript中,我们使用`var`、`let`或`const`来声明变量。`var`是ES5及以前版本的标准,而`let`和`const`是ES6引入的,它们...

    [JavaScript进阶]Professional JavaScript for Web Developers(3rd)

    严格模式(Strict Mode):讲解了ECMAScript 5引入的严格模式,用于编写更安全、更规范的JavaScript代码。 C. JavaScript库(JavaScript Libraries):可能列举并分析了一些流行的JavaScript库,例如jQuery、...

    JavaScript培训

    1. 脚本语言:JavaScript的语法相对宽松,不那么严格,适合快速开发,主要用于网页中的文本格式化和组件交互。 2. 基于对象:JavaScript支持面向对象编程,允许创建和使用各种内置对象,如“日期”对象。 3. 事件...

    javascript基础

    ##### 2.1 JavaScript语法格式 - **注释**:JavaScript支持单行注释(使用 `//`)和多行注释(使用 `/* */`)。 - **语句**:JavaScript中的语句是由一系列命令组成的,通常以分号结束。 - **代码位置**:...

    javascript 教程

    JavaScript教程详解 JavaScript,一种由Netscape公司开发的编程语言,因其轻量级、基于对象和事件驱动的特性,自发布以来在全球范围...理解并掌握JavaScript的基本概念和语法,对于成为一名全面的Web开发者至关重要。

    JavaScript

    1. **脚本语言**:JavaScript的语法相对宽松,没有编译型语言那样的严格规则,主要用于处理文本和调用已编译的组件。 2. **基于对象**:JavaScript支持面向对象编程,允许创建和使用各种内置对象,如Date对象。 3....

    Javascript.info Ebook Part 1 The JavaScript language (2019).pdf

    本书对于初学者和有经验的开发者都有很好的指导作用,注重于现代JavaScript语法的使用。接下来,我们将详细阐述文档中提到的关键知识点。 **JavaScript基础** 文档首先介绍了JavaScript的基础知识,如现代模式的...

    JavaScript_1_JS基本语法.docx

    JavaScript最初的设计融合了C语言的基本语法、JAVA的数据类型和内存管理、Scheme的函数特性以及Self的原型继承机制,形成了独特的编程风格,结合了函数式编程和面向对象编程的特点。 随着JavaScript的普及,出现了...

    李立超JavaScript基础篇笔记

    尽管JavaScript与ECMAScript在概念上有所区别,但通常情况下,人们将它们视为同义词,因为ECMAScript是JavaScript的标准化版本,由各大厂商如Mozilla、Microsoft等遵循并实现。 JavaScript的特点包括: 1. 解释型...

    JavaScript.The.Good.Parts

    5. **JSON**:JavaScript Object Notation,一种轻量级的数据交换格式,与JavaScript语法紧密关联。Crockford在推动JSON标准方面起到了重要作用。 6. **正则表达式**:JavaScript提供了强大的正则表达式引擎,用于...

Global site tag (gtag.js) - Google Analytics