一、算术运算

算术运算对非数值(Number)类型进行运算时,会将这些值转换为数值类型,再进行运算。

注:任何值和NaN做运算都得NaN

“+”可以对俩个值进行加法运算,并将结果返回。

  • 如果对两个字符串进行加法运算,则会做拼接。
  • 任何值和字符串做加法运算,都会转换为字符串,再将其进行拼接。
console.log(1+"2"); //12
console.log(1+2+"3"); //33
console.log(1+"2"+3); //123

引申:数值(number)转换为字符串。

var a=1;
a=1+"";
console.log(typeof a); //string
console.log(a); //1

二、一元运算符

  • +(正号)不会对数字产生任何影响。
  • -(负号)对数字进行取反。
  • 对非数值类型会将其转换为数值类型。利用该特性:可以将字符串转换为number类型。
var a="1";
a = +a; //隐式转换
console.log(typeof a); //number
console.log(a); /1

三、自增和自减

  • a++的值等于原变量的值(自增前的值)
  • ++a的值等于原变量新值(自增后的值)
  • a–的值等于原变量的值(自减前的值)
  • –a的值等于原变量新值(自减后的值)
var a=20;
console.log(a++); //20
console.log(++a); //21
var b=20;
console.log(b--);//20
console.log(--b); //19

四、逻辑运算

(1)!(非)可以用来对一个值进行非运算(取反)

  • 如果一个值进行两次取反,它不会变化。
  • 如果非布尔值进行取反,则会先将其转换为布尔值,再进行取反。

利用该特性这两个特性可以将其他类型的数据转换为布尔型

var a=1;
a=!!a;
console.log(typeof a); //boolean
console.log(a); //true

(2)&&(与)可以对符号俩侧的值进行运算并返回结果

  • 如果非布尔值进行与运算,则会先将其转换为布尔值,再进行与运算。
  • 两个值中只要有一个值为false就返回false。
  • 只有两个值为true时,才会返回true。

&&短路与

  • 如果第一个值为false,则不会看第二个值,直接返回第一个值
  • 如果俩个值都为true,则返回第二个值
var a=1 && 2; //2
var a="" && 2; //""
true && alert("我被执行");
false && alert("我没有被执行");

(3)||(或)可以对符号两侧的值进行或运算并返回结果

  • 如果非布尔值进行或运算,则会先将其转换为布尔值,再进行或运算。
  • 两个值中只要有一个值为true就返回true。
  • 只有两个值为false时,才会返回false。

||短路或

  • 如果第一个值为true,则不会看第二个值,直接返回第一个值
  • 如果俩个值都为false,则返回第二个值
var a=1 || 2; //1
var a="" || 2; //2
true && alert("我没有被执行");
false && alert("我有被执行");

五、关系运算(>= ,>,<=,< )

  • 非数值转为数值 ,再比较。
  • 任何值和NaN做任何比较都是false。
  • 如果符号两边都是字符串,不会将其转换为数值,而是分别比较字符串中的Unicode编码。
  • 比较字符编码时是一位一位进行比较。
console.log("11"<"5"); //true
console.log("a"<"b"); //true
console.log("abc"<"b"); //true
console.log("bbc"<"b"); //false

六、相等和不相等运算(==、!=)

  • 如果值的类型不同,会自动类型转换。
  • NaN不和任何值相等,包括他本身。
  • undefined等于null。
true == "1" ; //true
"true" == "1"; //false
true == "hello"; //false
null == 0; //flase
undefined ==null; //true
NaN ==NaN; //false

七、全等和不全等运算e

  • 不会类型转换,类型不同直接返回false。

八、三元运算符

  • 条件表达式 ?语句1:语句2;
  • true执行语句1,false执行语句2。

九、运算符的优先级

运算符 优先级
. (点) 、[] 、new 1
() 2
++ 、- - 3
!、~、+(单目)、-(单目)、typeof、void、delete 4
<<、>>、>>> 5
<、<=、>、>= 6
== 、!== 、=== 7
& 8
^ 9
| 10
&& 11
|| 12
?: 13
=、+=、-=、%=、<<=、>>=、>>>=、&=、^=、|= 14
, (逗号) 15

十、break和continue

  • break和continue用来退出switch和循环语句。
  • 不能用于if语句(在if语句中不起作用)
  • break会立即终止离它最近的那个循环语句。
  • continue跳出当次循环。
//跳出外层循环
outer:
for(let i=0;i<5;i++){console.log("@外层循环"+i);for(let j=0;j<5;j++){break outer;console.log("@内层循环"+j);}
}
//@外层循环0

欢迎访问我的个人博客

Javascript基础知识笔记一相关推荐

  1. JavaScript基础知识笔记

    基础语法 /* 多行注释 JS注释 多行注释,注释中的内容不会被执行,但是可以在源代码中查看 要养成良好的编写注释的习惯,也可以通过注释来对代码进行一些简单的调试 *///单行注释 //alert(& ...

  2. javascript基础知识笔记整理——javaweb笔记

    1.JavaScript 介绍 Javascript 语言诞生主要是完成页面的数据验证.因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码. JS是Netscape网景公司的产品 ...

  3. HTML5学习笔记 —— JavaScript基础知识

    HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...

  4. JS学习笔记二——JavaScript 基础知识

    JavaScript 基础知识 一.JavaScript 变量 二.JavaScript 的输出 三.JavaScript 运算符 四.结语 一.JavaScript 变量 变量是指在程序运行过程中, ...

  5. access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化

    往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...

  6. JavaScript 基础知识 - BOM篇

    前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...

  7. js java用var_Java基础———JavaScript基础知识

    原标题:Java基础---JavaScript基础知识 JavaScript基础知识(1) Javascript的历史,Javascript是什么? JavaScript 诞生于 1995 年. 它当 ...

  8. JavaScript 基础知识 - DOM篇(二)

    7. 节点操作 7.1 节点的属性 节点分类: 标签节点 文本节点 属性节点 注释节点 节点常用的属性: nodeType:节点的类型 nodeName:节点名称 nodeValue:节点值 常见的节 ...

  9. javaweb(02) JavaScript基础知识

    javaweb(02): JavaScript基础知识 JavaScript简介 为什么出现JavaScript Javascript是什么 JavaScript和Java的关系? 就像卡巴斯基和巴基 ...

  10. Javascript基础知识之四(常用数组方法)

    一.MDN链接 Array - JavaScript | MDNJavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象.https://developer.moz ...

最新文章

  1. JavaScript对HTML文件进行数据访问
  2. memcpy后数据不对_详解Redis 的 5 种基本数据结构:
  3. 通过ceph-deploy搭建ceph 13.2.5 mimic
  4. getResourceAsStream 返回 null 解决经验浅谈
  5. TiDB-新一代数据库入门介绍
  6. LaTeX中常用表格制作方法总结
  7. linux进程线程协程的区别,进程和线程、协程的区别
  8. 基于HTML5的Web SCADA工控移动应用
  9. 中国摊铺机(车辆)市场趋势报告、技术动态创新及市场预测
  10. Q128:PBRT-V3,“体渲染”积分器的“传播方程”(15.1章节)
  11. Springboot入门1
  12. asp连接linux下的oracle,如何从ASP连接到Oracle Server?
  13. 我用Anylogic写了一个遗传算法
  14. Ultravnc,3步教你Ultravnc软件如何注册登录
  15. 【教学】手写汉字识别,含训练代码,界面演示,1w字教学
  16. C++下caffe使用教程
  17. 自制DynamicProxy开发成功,性能测试提升了1.4倍。(看来微软的realproxy并不弱!导致我无法提升一个数量级)...
  18. 【阿里云短信服务SMS】使用阿里云发送短信
  19. cad上样条曲线上的点太多了_CAD样条曲线怎么能增加编辑点? CAD中如何按照
  20. Matlab求向量的模——速度比较

热门文章

  1. FFmpeg音视频同步的问题
  2. Linux acpi off学习的必要
  3. Hat’s Words HDU - 1247
  4. php ayyay,在PHP中使用Redis
  5. python函数第二次运行报错_(数据科学学习手札54)Python中retry的简单用法
  6. deepin允许root登录_王者荣耀安卓免ROOT不用电脑修改战区2020最新版教程
  7. sympy模块解指数方程
  8. ZooKeeper之ZkClient使用示例
  9. android 为什么下拉框是dialog形式,基础组件(二) - osc_sd6nmwhn的个人空间 - OSCHINA - 中文开源技术交流社区...
  10. Java枚举介绍_java枚举使用详细介绍及实现