1.算术运算符

1.算术运算符

  • 算术运算符:+*/%(取余)++--
  • 重点:++--前置和后置的区别。

1.1 前置 ++ 和 后置 ++

前置++:先自增值,再使用值
后置++:先使用值,再自增值

<script>
console.log("-------- 后置++ ----------");
var a=0;
console.log(a++);//0,后置是先用值,在自增值。
console.log(a);//1 自增后的值
console.log("-------- 前置++ ----------");
var b=2;
console.log(++b);//3 前置是先自增,后用值。
console.log(b);//3
console.log("-------- 后置++ ----------");
var d = 2;
var e = d++;// 后置是先用值,在自增值。
console.log( d,e );//3 2
console.log( "--------- 前置++ -------------" );
var f = 20;
var g = ++f;// 前置是先自增,后用值。
console.log( f,g );//21 21;
</script>

2.赋值运算符

2.赋值运算符

  • 赋值运算符:+=—=*,=/=%=
  • 计算完值后,并赋值给自己。

3.关系运算符

3.关系运算符

  • <= , >= , == , != , === , !==
  • 注意:返回的值都是布尔值。

3.1 ===== 的区别

  • == 进行比较的时候,会比较 两者的内容,不进行数据类型的比较
  • === 不仅判断内容 ,还会判断 数据类型。
<script>
console.log(1=="1");//true 只比较内容,内容相等故为真。
console.log(1==="1");//false 不仅比较内容,还比较数据类型。数据类型不为真,故假。
console.log( 1 != "1" );//false
console.log( 1 !== "1" );//true
</script>

3.2需要记忆的内容

<script>
console.log( null == undefined );//true
console.log( null == 0 );//false
console.log( undefined == 0 );//false
</script>

4.逻辑运算符

  • && (并且)
    如果左边为真,返回右边的值。
    如果左边为假,返回左边的值。
  • || (或者)
    如果左边为真,返回左边的值。
    如果左边为假,返回右边的值
  • ! (否)
    后面的数转成布尔值然后取反
<script>
console.log( 1 && 2 );//2
console.log( 0 && 2 );//0
console.log( 0 && "a" );//0 function fn(){
console.log("fn执行了");
} false && fn();//不执行fn();
true && fn();//执行fn();
undefined && fn();//不执行fn(); console.log( 0 || 1 );//1
console.log( 2 || 1 );//2 var res = "a" || "b";
console.log( res );//"a" console.log( !"false" );//"false"
</script>

5.三目运算符

三目运算符: 判断条件 ? 语句 1 : 语句 2

    判断条件 成立 执行语句 1
不成立 执行语句 2

6.数组的存储

数组赋值的时候,传递的是数组的地址。

<script>
var a = 1;
var b = a; // 传值,把a的值给b
a = 2;
console.log( b );//得到的值是1.
//------------------------------------------
var arr = ["a","b"];
var res = arr; // 传址,赋址
arr[0] = 1;
console.log( arr );//根据地址找数组,得到的是["1","b"]
console.log( res );//根据地址找数组,得到的是["1","b"]
//------------------------------------------
var arr1 = ["a","b"];
var res1 = ["a","b"];
arr1[0] = 1;
//arr1数组的地址和res1数组的地址不相同,虽然内容相同。
console.log( arr1 );//根据地址找数组,得到的是["1","b"]
console.log( res1 );//根据地址找数组,得到的是[a","b"]
</script>

JS基础入门篇(七)—运算符的更多相关文章

  1. JS基础入门篇(三十五)—面向对象(二)

    如果没有面向对象这种抽象概念的小伙伴,建议先看一下我写的JS基础入门篇(三十四)-面向对象(一)

  2. JS基础入门篇(二十七)—BOM

    虽然上次写到js基础篇(二十四),这次直接写到(二十七).是为了提醒自己中间有几篇没写.特此说明一下啊. 1.window.open() 使用a标签呢,点击一下a标签页面才会跳转,有时候我们需要做的操 ...

  3. JS基础入门篇(六)— 数据类型

    1.数据类型 数据类型:我感觉就是对数据的种类进行分类.就好比把人分为儿童,青少年,中年,老年一样. 基础数据类型: Number(数字),String(字符串),Null(空),Undefined( ...

  4. JS基础入门篇( 三 )—使用JS获取页面中某个元素的4种方法以及之间的差别( 一 )

    1.使用JS获取页面中某个元素的4种方法 1.通过id名获取元素 document.getElementById("id名"); 2.通过class名获取元素 document.g ...

  5. JS基础入门篇(三)— for循环,取余,取整。

    1.for循环 1.for的基本简介 作用: 根据一定的条件,重复地执行一行或多行代码 语法: for( 初始化 ; 判断条件 ; 条件改变 ){ 代码块 } 2.for循环的执行顺序 <bod ...

  6. JS基础入门篇(四)—this的使用,模拟单选框,选项卡和复选框

    1.this的使用 this js中的关键字 js内部已经定义好了,可以不声明 直接使用 this的指向问题 1. 在函数外部使用 this指向的是window 2. 在函数内部使用 有名函数 直接调 ...

  7. JS基础入门篇(二十四)—DOM(下)

    1.offsetLeft/offsetTop offsetLeft/offsetTop : 到定位父级节点的距离. <!DOCTYPE html> <html lang=" ...

  8. JS基础入门篇(三十四)— 面向对象(一)

    1.对象 对象的定义 : 对象 是 由 键值对 组成的无序集合. 创建对象两种方法 : 方法一 : 字面量方法 var obj = {name: "k"}; 方法二 : new O ...

  9. JS基础入门篇(四十三)—ES6(二)

    1.对象简洁表示法 原来写法 var name = "lzf"; var gender = "male"; var fn = function(){consol ...

随机推荐

  1. Matlab 中 函数circshift()的用法

    a = [ ; ; ]; b = [- - -; - - -;- - -]; c = [ ; ; ]; Hist(:,:,) = a; Hist(:,:,) = b; Hist(:,:,) = c; ...

  2. C#配置IIS站点

    一.源码特点       1.  一些基于ASP.NET应用产品,在用户环境中都无可避免的涉及到部署到目标环境的应用服务器上,而配置站点是此过程的核心步骤,此源码对过程进行了高度封装,从创建IIS所需 ...

  3. Android流媒体开发之路三:基于NDK开发Android平台RTSP播放器

    基于NDK开发Android平台RTSP播放器 最近做了不少android端的开发,有推流.播放.直播.对讲等各种应用,做了RTMP.RTSP.HTTP-FLV.自定义等各种协议,还是有不少收获和心得 ...

  4. Oracle OLAP

    w 国产商业智能 BI 这 20 年(1997-2017)| 天善智能  http://mp.weixin.qq.com/s/VJURX2qhmL0Uj1dctMyEig 1997-2001年,萌芽阶 ...

  5. c# access oledb helper class

    连接Access数据库 using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...

  6. Java中使用MATLAB作图 .

    最近做一个项目,需要很多进行很多信号处理——小魏就是学软件的,对信号处理简直是个小白,最简单的实现就是傻瓜似的调用MATLAB的各种工具箱,达到目的就行. 同时,MATLAB是种解释性语言,执行效率比 ...

  7. .Net Core 使用 System.Drawing.Common 在CentOS下报错

    .Net Core控制台项目,添加了 System.Drawing.Common 引用 #locate libdl /usr/lib64/libdl-2.17.so /usr/lib64/libdl. ...

  8. 16/7/8_PHP-对象的高级特性

    对这个理解不太懂或者说 没有一个明确的用法,不知道该怎么使用,说到底还是不懂有什么用.我还是先把只是点复制过来 对象比较,当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要 ...

  9. node+express 中安装nodemon实时更新server.js

    每次启动node server.js,有一个缺点,每次server.js文件有改动时,必须重新执行指令node server.js,新的代码才会起作用 解决方案1 全局安装 npm install s ...

  10. ubuntu 上用virtualenv安装python不同版本的开发环境。

    1.用pip安装virtualenv apt-get install python-virtualenv 2.创建python2的虚拟环境,进入要创建虚拟环境的目录下,我是放在/home/pyenv/ ...