语言类型:

  弱类型:可以改变变量值和对象类型

  强类型:可以改变变量值不能改变对象类型

  解释型:边编译边执行,速度慢。解释型一般是弱类型

  编译型:先编译再执行(C++\Java),速度快。编译型一般是强类型

JavaScript语言类型:

  解释型弱类型的脚本语言。

加法运算:

  任何类型加字符串或者对象(不包括undefined和null)相加,都变成字符串,空数组做加法运算时转换成空串

  对象转成字符为object Object,数组[1,2,3]转换成字符串为'1,2,3'

  如果没有字符类型或者undefined和null之外的对象类型,其他类型加法转换成数值进行运算

减法运算:

  任何类型的减法运算都转换成数值运算

一元运算符

    a++; // a = a+1;
    一元运算和累加赋值运算的区别:
       1 一元运算强制将值转换为数值+1
       2 打印a++,先 打印a,再自加。 打印a+=1;a+1,再打印a
       3 ++a,结果和a+=1一样
    从根本上来说,a的结果相同,返回的结果不同
    var x = 1;
    var y = x++ + x + x++ + x++ + x++; // 12,5
    var y = x+ ++x + x + + +x++ + x++; //12,5
  一定要有一个单+号衔接,(x + x ++x报错,右边没有衔接),前断后断都一样
 

关系运算符:

  任何关系运算符都有返回值

大小比较: <、<=、>、>=,返回的是布尔值

  字符字母和字符字母比较:按顺序一一比较单个字母的ascll码值

  字符字母和数字比较:false,相当于和NaN比较,这里'4a'也是NaN,而非按照parseInt转换成4

  字符数字和数字比较:字符数字转换成数值再比较,而非ascll码

比较运算符:返回的是布尔值

  空数组==空字符串==0是true , 空数组!== 0

  0 == false,'' == 0, '' == false

  对象与对象的比较判断的是引用地址,地址不同的对象为false

  特殊情况:undefined == null  是true

  [] == [] , 是false,因为是两个不同的对象

  if(a == null)为真,那么a只能为null或者undefined

  if(a == 0)为真, 那么a只能为0或’‘或false

  [] == '' 为true,[]没办法转换成布尔值,会转换成空串

  [1,2,3] = '1,2,3'是true,数组会转成字符串

  数组与其他非对象类型比较时都会转换成字符串

  数组中如何包含对象,转成字符串对象是object Object

逻辑运算符:返回值、熔断机制。会再判断的时候进行运算改变值

&&:

左右为true才为true

左true,则一定返回右

左false返回左,不进行右侧运算

  

||   : 

左右都为false才为false

如果左为true,直接返回左边,不进行右边的判断

如果左为false,则一定返回右边

        var a = 1;
a = --a || ++a;// 左边是false,看右边,右边是true,返回右边左边已经进行了运算
console.log(a);

28 JavaScript语言类型&运算符的更多相关文章

  1. 面向对象的JavaScript --- 动态类型语言

    面向对象的JavaScript --- 动态类型语言 动态类型语言与面向接口编程 JavaScript 没有提供传统面向对象语言中的类式继承,而是通过原型委托的方式来实现对象与对象之间的继承. Jav ...

  2. javascript语言精粹

    内容选自:<javascript语言精粹> 1.6种值会为假(==false),分别是false,null,undefined,' ',0,NaN 2.typeof有6种值,分别是'num ...

  3. 《JavaScript语言精粹》小记

    一.前言 以下内容均摘自<JavaScript语言精粹>一书,本人在读这本书时,发现作者诠释JavaScript很犀利,特别是数组部分,固记录下来,想和大家分享下. 随笔主要包含两大部分: ...

  4. Javascript 语言精粹 代码片段合集

    Javascript 语言精粹 代码片段合集 标签:Douglas-Crockford Javascript 最佳实践 原文链接 更好的阅读体验 使用一个method 方法定义新方法 Function ...

  5. 《JavaScript语言精粹》学习笔记

    一.in的用法 for...in 枚举一个对象的所有可枚举属性 检测DOM/BOM属性 if ("onclick" in elem) { // 元素支持onclick } if ( ...

  6. 第一章:Javascript语言核心

    本节是javascript语言的一个快速预览,也是本书的第一部分快速预览. 读此书之前,感谢淘宝技术团队对此javascript核心的翻译,感谢弗拉纳根写出此书.感谢你们无私的分享,仅以此笔记献给你们 ...

  7. JavaScript的类型、值和变量的总结

    前言:JavaScript的数据类型分为两类:原始类型和对象类型.5种原始类型:数字.字符串.布尔值.null(空).undefined(未定义).对象是属性的集合,每个属性都由“名/值对”(值可以是 ...

  8. JavaScript语言精粹-读书笔记

    前言:很久之前读过一遍该书,近日得闲,重拾该书,详细研究一方,欢迎讨论指正. 目录: 1.精华 2.语法 3.对象 4.函数 5.继承 6.数组 7.正则表达式 8.方法 9.代码风格 10.优美的特 ...

  9. JavaScript 语言精粹读书笔记

    最近在看 赵泽欣 / 鄢学鹍 翻译的 蝴蝶书, 把一些读后感言记录在这里. 主要是把作者的建议跟 ES5/ES5.1/ES6 新添加的功能进行了对比 涉及到的一些定义 IIFE: Immediatel ...

随机推荐

  1. html集合

    <!DOCTYPE> //声明文档类型 <!DOCTYPE> 声明必须是 HTML 文档的第一行,位于 <html> 标签之前. <!DOCTYPE> ...

  2. java 快捷表达式

    :: 和 ->  主要说这两个,这个好像也叫:Lambda表达式    但我不知道对不对,就先叫他 “快捷表达式“,顾名思义:使用它,可以省很多代码,可以用来装X,但不便于阅读. 这种东西呢,虽 ...

  3. CentOS6.5-6.9安装 docker

    安装docker yum -y install docker-io 备注:查看内核版本uname -r ;卸载docker版本命令 yum remove docker 更改配置文件 vim /etc/ ...

  4. java中一个类中的 this. 是什么作用

    2)this代表的是本类的实例对象,不是什么调用本类的方法的对象.当你用new创建一个对象的时候,对象就已经在内存了.(具体的你的血jvm和反射).构造方法只是为了给对象里的属性赋值.在类里任何地方出 ...

  5. JS高级---面向对象的编程思想(贪吃蛇梳理)

    面向对象的编程思想(贪吃蛇梳理) 模拟贪吃蛇游戏,做的项目 地图: 宽,高,背景颜色,因为小蛇和食物都是相对于地图显示的, 这里小蛇和食物都是地图的子元素, 随机位置显示, 脱离文档流的, 地图也需要 ...

  6. JS高级---案例:贪吃蛇小游戏

    案例:贪吃蛇小游戏 可以玩的小游戏,略复杂,过了2遍,先pass吧 先创建构造函数,再给原型添加方法.分别创建食物,小蛇和游戏对象. 食物,小蛇的横纵坐标,设置最大最小值,运动起来的函数,按上下左右键 ...

  7. 抽象工厂模式(JAVA反射)

    实例代码(JAVA):模式动机     在工厂方法模式中具体工厂负责生产具体的产品,每一个具体工厂对应一种具体产品,工厂方法也具有唯一性,一般情况下,一个具体工厂中只有一个工厂方法或者一组重载的工厂方 ...

  8. date命令的帮助信息,使用date命令输出数字做为命名标题则不会有重复标题

    date命令的帮助信息,如下图 原文来自 https://blog.csdn.net/yz18931904/article/details/80985345 [root@localhost sourc ...

  9. [linux] 手机Deploy linux 桌面中文乱码

    在手机上安装Deploy之后 通过VNC连接桌面,中文出现乱码 是方块乱码 这个是字体缺失造成的 安装字体就好了 我安装的是kali 桌面是LXDE sudo apt-get install font ...

  10. C 语言实例 - 判断三边能否构成三角形

    原理: 要判断输入的三条边能否够成三角形,只需满足条件两边之和大于第三边即可. #include<stdio.h> int main() { printf("请输入三个边长:\n ...