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日 ...
 
随机推荐
- JSON 在JavaScript 中的应用及自己的理解
			
[对象和json]JSON:JavaScript 对象表示法(JavaScript Object Notation).JSON 是存储和交换文本信息的语法.类似 XML.JSON是一种数据格式,不是一 ...
 - javascript-DOM操作-留言板制作
			
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
 - MySql按周/月/日分组统计数据的方法
			
知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case grou ...
 - SMOTE RF MLP demo use  cross_val_score to find best argument 处理不平衡数据的demo代码 先做smote处理 再用交叉验证找到最好的模型参数 实践表明MLP更好
			
# _*_coding:UTF-8_*_ from sklearn.externals.six import StringIO from sklearn import tree import pydo ...
 - Nodejs调试技术总结
			
调试技术与开发技术构成了软件开发的基石.目前Nodejs作为新型的Web Server开发栈倍受开发者关注.总的来说Nodejs的应用程序主要有两部分:JavaScript编写的js模块和C语言编译的 ...
 - phpstorm修改html模板
 - Solr单机版安装
			
感谢 shliuzw 的分享,原文地址http://blog.csdn.net/liuzhenwen/article/details/4060922 感谢 upxiaofeng 的分享,原文地址 ht ...
 - Django 框架概况
			
Django 里更关注的是模型(Model).模板(Template)和视图(Views),称为 MTV模式: M 代表模型(Model),即数据存取层. 该层处理与数据相关的所有事务:如何存取.如何 ...
 - Agc019_C Fountain Walk
			
传送门 题目大意 给定网格图上起点和终点每个格子是长为$100$米的正方形,你可以沿着线走. 平面上还有若干个关键点,以每个关键点为圆心,$10$为半径画圆,表示不能进入圆内的线,但是可以从圆周上走, ...
 - redis3.2.11 安装
			
wget http://download.redis.io/releases/redis-3.2.11.tar.gz [root@hdp01 src]# .tar.gz -C /opt/ [root@ ...