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

JavaScript中“+”的陷阱(续)

 
阅读更多

一、两个中括号相加

[] + []

 

中括号没有语句块的作用,因此这里的两个中括号就是一个数组。两个数组(对象类型)相加先要将其转换成值类型(基本类型)。

 

1,转成值类型调用valueOf,[]的valueOf()还是自己

 

var arr = [];
arr.valueOf() === arr; // true

 

2,转成字符串,[]的toString是空字符串

 

[].toString(); // ""
String([]) // ""

 

好了,结果出来了。两个空字符串相加,结果仍然是空字符串。即这里的“+”指字符串连接而非数字相加。

 

 

 

二、大括号和中括号的相加

{} + []

 

注意这里的大括号仍然不是对象直接量,而是空语句块。因此可以去掉它,即相当于

+ []

 

注意,这时由之前看似的两个运算数变成了实际的单运算数。而“+”运算符当只有一个运算数时只代表一个意思:算术加运算。即这里没有字符串连接的意思了。

 

中括号的toString()是空字符串,又相当于

 

+ ""
   

“+”代表算术加运算,字符串非数字,因此将其转换成数字类型。空字符串转成数字类型在上一篇提到过,为0。

 

那么最后的结果就是0。

 

 

三、中括号和大括号相加

[] + {}

 

与上面的对比,只是中括号和小括号交换了顺序。结果却不相同。大括号放到右边后,与上面讨论的大括号的意义不同了。这里的大括号就是一个对象直接量而非语句块。

 

“+” 两边的运算数转成值类型分别是:"" 和 "[object Object]"。这时 "+" 表示字符串连接。即

"" + "[object Object]"

 

结果是 “[object Object]”。

 

 

四、小括号也和它们相加试试

 

突发奇想!好吧,小括号虽然有多义性,但它不能作为运算数。

 


  • 大小: 6.3 KB
分享到:
评论

相关推荐

    Javascript实现的简单的转盘抽奖小案例+Javascript编程+Javascript小案例+转盘抽奖程序案例

    Javascript实现的简单的转盘抽奖小案例+Javascript编程+Javascript小案例+转盘抽奖程序案例Javascript实现的简单的转盘抽奖小案例+Javascript编程+Javascript小案例+转盘抽奖程序案例Javascript实现的简单的转盘抽奖...

    基于微信小程序的机票预订系统JavaScript源码+设计报告.zip

    基于微信小程序的机票预订系统JavaScript源码+设计报告.zip基于微信小程序的机票预订系统JavaScript源码+设计报告.zip基于微信小程序的机票预订系统JavaScript源码+设计报告.zip基于微信小程序的机票预订系统...

    JavaScript+jQuery程序设计 源码

    在"JavaScript+jQuery程序设计 源码"中,我们可以深入学习以下几个重要的知识点: 1. **JavaScript基础**:这包括变量声明、数据类型(如字符串、数字、布尔、对象和数组)、控制结构(如条件语句、循环)、函数...

    HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip

    本文将深入探讨这些技术,并基于"HTML+CSS+JavaScript+jQuery+Bootstrap等前端框架实现的前端案例.zip"这个压缩包中的webdemo-master项目,分析它们在实际应用中的作用。 首先,HTML(HyperText Markup Language)...

    JavaScript+C#的智慧物流管理系统.zip

    JavaScript+C#的智慧物流管理系统JavaScript+C#的智慧物流管理系统JavaScript+C#的智慧物流管理系统JavaScript+C#的智慧物流管理系统JavaScript+C#的智慧物流管理系统JavaScript+C#的智慧物流管理系统JavaScript+C#...

    jsp+JavaScript+struts+hibernate+css+mysql的网上书店

    《基于JSP+JavaScript+Struts+Hibernate+CSS+MySQL的网上书店系统详解》 网上书店作为电子商务的重要组成部分,其技术实现方式多种多样。本文将深入探讨一个与当当网框架相似的网上书店项目,该项目利用了Java Web...

    如何设计一套JavaScript课程体系+编程知识+技术开发

    如何设计一套JavaScript课程体系+编程知识+技术开发; 如何设计一套JavaScript课程体系+编程知识+技术开发; 如何设计一套JavaScript课程体系+编程知识+技术开发; 如何设计一套JavaScript课程体系+编程知识+技术...

    HTML+CSS+JavaScript+php+mysql帮助手册(内含html5+css3+javascript5帮助手册)

    HTML、CSS、JavaScript、PHP和MySQL是Web开发中不可或缺的核心技术。这本综合性的帮助手册提供了全面的指导,涵盖了从构建网页结构到处理服务器端逻辑再到数据库管理的全过程。 HTML(HyperText Markup Language)...

    HTML+CSS+JavaScript+AJAX+JQuery.docx

    学习 HTML+CSS+JavaScript+AJAX+JQuery 的过程通常包括以下步骤: - 理解 HTML 结构,编写基本的静态网页。 - 学习 CSS 规则,掌握布局和美化网页的方法。 - 掌握 JavaScript 基础,包括变量、条件语句、循环、函数...

    学习 HTML+CSS+JavaScript等.zip

    学习 HTML+CSS+JavaScript等学习 HTML+CSS+JavaScript等 学习 HTML+CSS+JavaScript等学习 HTML+CSS+JavaScript等 学习 HTML+CSS+JavaScript等学习 HTML+CSS+JavaScript等 学习 HTML+CSS+JavaScript等学习 ...

    Javascript中的陷阱大集合【译】

    ### JavaScript中的陷阱大集合 #### 引言 在开发领域,JavaScript因其强大的功能与灵活性而备受推崇,成为了前端开发的标准语言之一。然而,正如任何一种编程语言一样,JavaScript也有其独特之处,其中不乏一些令...

    jQuery动画特效---精通JavaScript+jQuery

    第0课 - 内容概述 - [精通JavaScript+jQuery] 第1课 - JavaScript背景知识-[精通JavaScript+jQuery] 第2课 - JavaScript基础 - [精通JavaScript+jQuery] 第3课 - CSS基础 - [精通JavaScript+jQuery] 第4课 - CSS...

    基于JavaScript+python开发的大数据智慧旅游系统源码+全部数据.zip

    基于JavaScript+python开发的大数据智慧旅游系统源码+全部数据.zip基于JavaScript+python开发的大数据智慧旅游系统源码+全部数据.zip基于JavaScript+python开发的大数据智慧旅游系统源码+全部数据.zip基于JavaScript...

    web大作业 基于HTML+JavaScript+Layui实现的电商网站源码(19页)

    web大作业 基于HTML+JavaScript+Layui实现的电商网站源码(19页) web大作业 基于HTML+JavaScript+Layui实现的电商网站源码(19页) web大作业 基于HTML+JavaScript+Layui实现的电商网站源码(19页) web大作业 基于...

    JavaScript+jQuery交互式Web前端开发-源代码.zip

    JavaScript 和 jQuery 是现代 Web 前端开发中的两个核心工具,它们共同为创建动态、交互式的网页提供了强大的功能。在本教程中,我们将深入探讨如何将这两种技术与 HTML 和 CSS 结合,以实现高效的网页设计。 ...

    Html+Css +JavaScript 表白网站~

    Html+Css +JavaScript 表白网站~ Html+Css +JavaScript 表白网站~ Html+Css +JavaScript 表白网站~ Html+Css +JavaScript 表白网站~ Html+Css +JavaScript 表白网站~ Html+Css +JavaScript 表白网站~ ...

    精通javascript+jQuery

    《精通JavaScript+jQuery》从JavaScript的基础知识开始,围绕标准Web的各项技术予以展开,通过大量实例对JavaScript、CSS、DOM、Ajax等Web关键技术进行深入浅出的分析。主要内容包括JavaScript的概念和基本语法、CSS...

    基于javaScript+java+springboot开发的咖啡店网站+源码(毕业设计&课程设计&项目开发)

    基于javaScript+java+springboot开发的咖啡店网站+源码,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于javaScript+java+springboot开发的咖啡店网站+源码,...

    基于Verilog+javaScript+html+css开发的自动售货机+异步输入(毕业设计&课程设计&项目开发)

    基于Verilog+javaScript+html+css开发的自动售货机+异步输入,适合毕业设计、课程设计、项目开发。项目源码已经过严格测试,可以放心参考并在此基础上延申使用~ 基于Verilog+javaScript+html+css开发的自动售货机+...

Global site tag (gtag.js) - Google Analytics