写在前面

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中的操作符的更多相关文章

  1. 想不到的:js中加号操作符

    研究js加号操作符的时候,无意中试验了一个 console.log({} + "str");//NaN 发现结果居然是NaN,这让我百思不得其解. 我查阅资料,js高级编程里是这样 ...

  2. JS 中 new 操作符

    按照javascript语言精粹中所说,如果在一个函数前面带上new来调用该函数,那么将创建一个隐藏连接到该函数的prototype成员的新对象,同时this将被绑定到那个新对象上.这个话很抽象,我想 ...

  3. JS中==与===操作符的比较

    摘要: ===操作符: 要是两个值类型不同,返回false 要是两个值都是number类型,并且数值相同,返回true 要是两个值都是stirng,并且两个值的String内容相同,返回true 要是 ...

  4. JS中new操作符源码实现

    首先我们来看一下实例化一个对象做了浏览器做了什么事情 new的四步操作: 1. 创建一个空对象 2. 设置空对象的__proto__属性继承构造函数的prototype属性,也就是继承构造函数的原型对 ...

  5. Javascript高级编程学习笔记(4)—— JS中的数据类型(2)

    接着昨天的文章,今天这篇文章主要讲述JS中剩余的两种数据类型String,和Object String类型 对于该类型,书中给出的解释为:由0或多个16为Unicode字符组成的字符序列. 对于JS中 ...

  6. 【js实例】js中的5种基本数据类型和9种操作符

    js中的5中基本数据类型 js标识符 第一个字符必须为字母,下划线,或美元符 其他字符可以是字母,下划线,美元符,数字 js标识符区分大小写 标识符不能使关键字和保留字 关键字: break do i ...

  7. JS中的一元操作符

    表达式 一元操作符 优先级 结合性 运算顺序 表达式是什么? 就是JS 中的一个短语,解释器遇到这个短语以后会把对它进行计算,得到一个结果参与运算,我们把这种要参与到运算中的各种各样的短语称为表达式. ...

  8. JS中的new操作符

    在JS中定义一个构造函数,然后用new操作符构造对象obj,JS代码如下. function Base(){ this.name = "swf"; this.age =20; } ...

  9. js中的new操作符与Object.create()的作用与区别

    js中的new操作符与Object.create()的作用与区别 https://blog.csdn.net/mht1829/article/details/76785231 2017年08月06日 ...

随机推荐

  1. Wannafly挑战赛4 B,小AA的数列

    题意:求子区间异或和,要求区间长度在l到r之间,并且为偶数 题解:对于每一位算贡献,可以分奇偶来记录,计算的时候只加上奇偶性相同的就保证了为偶数,从大于l的点开始每次++,从大于r的点每次--,记录二 ...

  2. hdoj-1038-Biker's Trip Odometer(水题)

    题目真的考验英语 题目链接 需要进行单位的转换 对于Pi用:3.1415927. 5280步相当于1英里. 12英寸相当于1步. 60分钟等于1小时 60秒等于1分钟. 201.168米等于1弗朗.( ...

  3. How to install php 7.x on CentOS 7

    Step 1: Setup the Webtatic YUM repo Precompiled PHP 7.x binaries are available for CentOS 7 from the ...

  4. php实现二叉树的遍历

  5. I.MX6 Android 5.1 回到 Android 4.2 emmc 启动

    /*************************************************************************** * I.MX6 Android 5.1 回到 ...

  6. sklearn_算法选择

  7. django的工作图

  8. Directx 9 VS2015环境搭建

    安装好Directx9 sdk和vs2015后 打开vs,新建项目 --> c++项目  -->win32控制台应用程序-->空项目 创建项目后,右键项目属性, 包含目录 D:\Pr ...

  9. 多版本python管理miniconda(集成了virtualenv和pip功能)

    miniconda下载地址: https://conda.io/docs/user-guide/install/index.html Installing on Linux Download the ...

  10. WebSocket --为什么引入WebSocket协议

    Browser已经支持http协议,为什么还要开发一种新的WebSocket协议呢?我们知道http协议是一种单向的网络协议,在建立连接后,它只允许Browser/UA(UserAgent)向WebS ...