js中的操作符
写在前面
js语法
DOM对象(把body,div,p等节点树看成一个对象)
BOM对象(把浏览器的地址栏历史记录DOM等装在一个对象)
浏览器是宿主,但js的宿主不限于浏览器,也可以是服务器,如node.js。
运算符:
//js中拼接运算符
console.log(2+3);
console.log('hello'+''+'world');
console.log(2+3+4+'haha'+5+6);//9haha56,一旦碰到非法数字后,后面的一律理解为“拼接”
例如
var num1=5;
var num2=10;
var message="The sum of 5 and 10 is"+num1+num2;
alert(message);//因为每个+都是独立的,第一个将字符串与数值5拼接,第二个又与10拼接,因此结果The sum of 5 and 10 is 510
var message="The sum of 5 and 10 is"+(num1+num2);
alert(message);//此时The sum of 5 and 10 is 15
//js中逻辑运算
都遵循的规则
逻辑与操作符&&
1如果第一个操作符是对象,则返回第二个操作数;
2如果第二个操作数是对象,则只有在第一个操作数求值结果为true的情况下才能返回该对象;
3如果两个操作数都是对象,则返回第二个操作数;
4_&&null -null
5_&&NaN -NaN
6_&&undefined -undefined
属于短路操作,即如果第一个操作数能够决定结果,那么就不会对第二个操作数求值
var found=true;
var result=(found&&s);//这里会发生错误
alert(result);//这里不会执行
var found=false;
var result=(found&&s);//不会发生错误
alert(result);//会执行(“false”)
因此逻辑与操作中不能用未定义的值(s未定义),使用之后就会发生错误。
逻辑或操作符||
1如果第一个操作符是对象,则返回第一个操作数;
2如果第一个操作数求值结果为false,则返回第二个操作数
3如果两个操作数都是对象,则返回第一个操作数;
4null||null -null
5NaN||NaN -NaN
6undefined||undefined -undefined
返回的是最早能判断表达式结果的那个值
var a=false;
var b=6;
var c=true;
var d=(a||b||c);
console.log(d);//6
在源码中经常用window.hello=window.hello||window.world;哪一个为真就把哪一个值赋给window.hello
js中的操作符的更多相关文章
- 想不到的:js中加号操作符
研究js加号操作符的时候,无意中试验了一个 console.log({} + "str");//NaN 发现结果居然是NaN,这让我百思不得其解. 我查阅资料,js高级编程里是这样 ...
- JS 中 new 操作符
按照javascript语言精粹中所说,如果在一个函数前面带上new来调用该函数,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将被绑定到那个新对象上.这个话很抽象,我想 ...
- JS中==与===操作符的比较
摘要: ===操作符: 要是两个值类型不同,返回false 要是两个值都是number类型,并且数值相同,返回true 要是两个值都是stirng,并且两个值的String内容相同,返回true 要是 ...
- JS中new操作符源码实现
首先我们来看一下实例化一个对象做了浏览器做了什么事情 new的四步操作: 1. 创建一个空对象 2. 设置空对象的__proto__属性继承构造函数的prototype属性,也就是继承构造函数的原型对 ...
- Javascript高级编程学习笔记(4)—— JS中的数据类型(2)
接着昨天的文章,今天这篇文章主要讲述JS中剩余的两种数据类型String,和Object String类型 对于该类型,书中给出的解释为:由0或多个16为Unicode字符组成的字符序列. 对于JS中 ...
- 【js实例】js中的5种基本数据类型和9种操作符
js中的5中基本数据类型 js标识符 第一个字符必须为字母,下划线,或美元符 其他字符可以是字母,下划线,美元符,数字 js标识符区分大小写 标识符不能使关键字和保留字 关键字: break do i ...
- JS中的一元操作符
表达式 一元操作符 优先级 结合性 运算顺序 表达式是什么? 就是JS 中的一个短语,解释器遇到这个短语以后会把对它进行计算,得到一个结果参与运算,我们把这种要参与到运算中的各种各样的短语称为表达式. ...
- JS中的new操作符
在JS中定义一个构造函数,然后用new操作符构造对象obj,JS代码如下. function Base(){ this.name = "swf"; this.age =20; } ...
- js中的new操作符与Object.create()的作用与区别
js中的new操作符与Object.create()的作用与区别 https://blog.csdn.net/mht1829/article/details/76785231 2017年08月06日 ...
随机推荐
- Bellman-Ford算法 O(NE)
Bellman-Ford算法 O(NE) 思路:枚举n-1次所有边,通过枚举所有边,将所有和已知点相连的点都设为已知,初始时起点为已知点. ;i<=n-;i++){ //n-1是次数,枚举n-1 ...
- 【Oracle】异常信息的加工处理
引言 很多时候,我们调用oracle存储过程都会发生各种各样的异常信息,例如ORA-12899值过大,ORA-01400不能插入空值等.虽然说这类异常是前端没控制到位的缘故,但是现实很难100 ...
- hdoj-1017-A Mathematical Curiosity(格式坑)
题目链接 /* Name: Copyright: Author: Date: 2018/5/3 16:32:15 Description: */ #include <iostream> # ...
- BEC translation exercise 7
在挑选时我们完全出自疏忽而漏过了这篇短文.In making the selection we passed this short piece by quite inadvertently. we l ...
- Node.Js and Mongoose
Mongoose官方API,我做完之后整理出来的心得. ONE· Getting Started First be sure you have MongoDB and Node.js installe ...
- 利用PIL添加水印
转:http://www.jb51.net/article/66542.htm
- hadoop完全分布式文件系统集群搭建
一.准备工作: 1.找3台以上的主机(因为HDFS文件系统中保存的文件的blocak在datanode中至少要有3份或3份以上的备份,备份不能放于同一个机架上,更不能放于同一台主机上),我这里使用的是 ...
- 尚硅谷Java视频教程导航(学习路线图)
最近很火,上去看了看,对于入门的人还是有点作用的,做个记号,留着以后学习. Java视频教程下载导航(学习路线图) 网站地址:http://www.atguigu.com/download.shtml
- HL7 标准及实现指南 必看的网址
V2: http://hl7book.net/index.php?title=HL7_version_2 包括HL7 的介绍,主要章节,每个版本的变化, 各种语言实现的HL7库,免费HL7工具, 最新 ...
- 推荐几个MySQL大牛的博客
1.淘宝丁奇 http://dinglin.iteye.com/ 2.周振兴@淘宝 花名:苏普 http://www.orczhou.com/ 3. 阿里云数据库高级专家彭立勋为 MariaDB Fo ...