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。
九、运算符的优先级
运算符优先级
. (点) 、[] 、new1
()2
++ 、- -3
!、~、+(单目)、-(单目)、typeof、void、delete4
<<、>>、>>>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

欢迎访问我的个人博客

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脑公公

您的鼓励将是我前进的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值