Javascript基础知识笔记一
一、算术运算
算术运算对非数值(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基础知识笔记一相关推荐
- JavaScript基础知识笔记
基础语法 /* 多行注释 JS注释 多行注释,注释中的内容不会被执行,但是可以在源代码中查看 要养成良好的编写注释的习惯,也可以通过注释来对代码进行一些简单的调试 *///单行注释 //alert(& ...
- javascript基础知识笔记整理——javaweb笔记
1.JavaScript 介绍 Javascript 语言诞生主要是完成页面的数据验证.因此它运行在客户端,需要运行浏览器来解析执行 JavaScript 代码. JS是Netscape网景公司的产品 ...
- HTML5学习笔记 —— JavaScript基础知识
HTML5学习笔记 -- JavaScript基础知识 标签: html5javascriptweb前端 2017-05-11 21:51 883人阅读 评论(0) 收藏 举报 分类: JavaScr ...
- JS学习笔记二——JavaScript 基础知识
JavaScript 基础知识 一.JavaScript 变量 二.JavaScript 的输出 三.JavaScript 运算符 四.结语 一.JavaScript 变量 变量是指在程序运行过程中, ...
- access2013数据库实验笔记_医学科研实验基础知识笔记(十):甲基化
往期回顾 医学科研实验基础知识笔记(一):细胞增殖 医学科研实验基础知识笔记(二):细胞凋亡检测 医学科研实验基础知识笔记(三):细胞周期检测 医学科研实验基础知识笔记(四):细胞自噬研究策略 医学科 ...
- JavaScript 基础知识 - BOM篇
前言 本篇文章是JavaScript基础知识的BOM篇,如果前面的<JavaScript基础知识-DOM篇>看完了,现在就可以学习BOM了. 注意: 所有的案例都在这里链接: 提取密码密码 ...
- js java用var_Java基础———JavaScript基础知识
原标题:Java基础---JavaScript基础知识 JavaScript基础知识(1) Javascript的历史,Javascript是什么? JavaScript 诞生于 1995 年. 它当 ...
- JavaScript 基础知识 - DOM篇(二)
7. 节点操作 7.1 节点的属性 节点分类: 标签节点 文本节点 属性节点 注释节点 节点常用的属性: nodeType:节点的类型 nodeName:节点名称 nodeValue:节点值 常见的节 ...
- javaweb(02) JavaScript基础知识
javaweb(02): JavaScript基础知识 JavaScript简介 为什么出现JavaScript Javascript是什么 JavaScript和Java的关系? 就像卡巴斯基和巴基 ...
- Javascript基础知识之四(常用数组方法)
一.MDN链接 Array - JavaScript | MDNJavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象.https://developer.moz ...
最新文章
- JavaScript对HTML文件进行数据访问
- memcpy后数据不对_详解Redis 的 5 种基本数据结构:
- 通过ceph-deploy搭建ceph 13.2.5 mimic
- getResourceAsStream 返回 null 解决经验浅谈
- TiDB-新一代数据库入门介绍
- LaTeX中常用表格制作方法总结
- linux进程线程协程的区别,进程和线程、协程的区别
- 基于HTML5的Web SCADA工控移动应用
- 中国摊铺机(车辆)市场趋势报告、技术动态创新及市场预测
- Q128:PBRT-V3,“体渲染”积分器的“传播方程”(15.1章节)
- Springboot入门1
- asp连接linux下的oracle,如何从ASP连接到Oracle Server?
- 我用Anylogic写了一个遗传算法
- Ultravnc,3步教你Ultravnc软件如何注册登录
- 【教学】手写汉字识别,含训练代码,界面演示,1w字教学
- C++下caffe使用教程
- 自制DynamicProxy开发成功,性能测试提升了1.4倍。(看来微软的realproxy并不弱!导致我无法提升一个数量级)...
- 【阿里云短信服务SMS】使用阿里云发送短信
- cad上样条曲线上的点太多了_CAD样条曲线怎么能增加编辑点? CAD中如何按照
- Matlab求向量的模——速度比较
热门文章
- FFmpeg音视频同步的问题
- Linux acpi off学习的必要
- Hat’s Words HDU - 1247
- php ayyay,在PHP中使用Redis
- python函数第二次运行报错_(数据科学学习手札54)Python中retry的简单用法
- deepin允许root登录_王者荣耀安卓免ROOT不用电脑修改战区2020最新版教程
- sympy模块解指数方程
- ZooKeeper之ZkClient使用示例
- android 为什么下拉框是dialog形式,基础组件(二) - osc_sd6nmwhn的个人空间 - OSCHINA - 中文开源技术交流社区...
- Java枚举介绍_java枚举使用详细介绍及实现