文章目录
一.数学对象
在js中,提供了一个内置的数学对象,叫做Math。这个对象的很多属性和方法都是提供我们使用的。
对象:我们经常将引用类型的数据称之为对象。
属性和方法:没有f的称之为属性,有f的称之为方法。
<script>
console.log(Math); //打印对象的所有属性和方法。
console.log(Math.PI);//属性的使用,圆周率
console.log(Math.abs(-12));//方法的使用,绝对值
</script>
二.运算符
1.算术运算符
算术运算符可以叫做数学运算符。
数学运算符
在js当中,数学运算符有加(+)减(-)乘(*)除(/)余(%)
计算口诀:先算乘除、后算加减。如果有小括号,先算小括号里的。
特殊值可以参与运算
<script>
console.log(1+2); //3
console.log(1-2); //-1
console.log(1*2); //2
console.log(1/2); //0.5
console.log(3%2); //1
console.log(Infinity+62); //Infinity
console.log(NaN+4); //NaN
</script>
其他类型的数据隐式转换为数字,也能数学运算
<script>
console.log(Number(true)+1); //2
console.log(Number(false)+4); //4
console.log(Number(undefined)); //NaN
console.log(Number(null)); //0
</script>
字符串类型参与数学运算
连接符的作用:字符连数字、字符连字符
Number:隐式转换为数字,它是一个内置函数。
<script>
console.log(Number("")+1); //1
console.log(Number("学习12")+2); //NaN
console.log(Number("12学习")+2); //NaN
console.log(Number("12")+3); //15
</script>
总结
空字符:0
非纯数字的字符串:NaN
纯数字:数字
自增、自减
自增
a++:后置递增,进行加1操作
++a:前置递增,进行加1操作
<script>
var a=10;
console.log(a++); //10 为什么是10?因为a++是先打印,后运算。
a=10;
console.log(++a); //11 为什么是11?因为++a是先运算,后打印。
</script>
自减
同理可得
<script>
var a=10;
console.log(a--); //10
a=10;
console.log(--a); //9
</script>
2.比较运算符
比较运算
比较运算符:大于、大于等于、小于、小于等于、等于、不等于、全等于、不全等于。
两个数据进行对比,对比的结果不是为真,就是为假。
两个等号:相等判断,判断数值是否相等。
三个等号:全等的判断,数值和数据类型是否全等。
<script>
console.log(10>4); //true
console.log(4>=4); //true
console.log(10<4); //false
console.log(4<=4); //true
console.log(4==4); //true
console.log(4!=4); //false
console.log(4===4); //true 数值相等,数据类型也相等
console.log(4!=="4"); //true 数值相等,但是数据类型不相等
</script>
数字类型的特殊值也可以参与比较运算
Infinity
<script>
console.log(Infinity==Infinity); //true
console.log(Infinity>999); //true
console.log(Infinity<999); //false
console.log(Infinity===Infinity);//true
</script>
NaN
<script>
console.log(NaN==NaN); //false
console.log(NaN>999); //false
console.log(NaN<999); //false
console.log(NaN===NaN);//false
</script>
总结:只有数字类型的特殊值NaN与自身比较的时候,是不等的。其余的特殊值比较的时候,是相等的。
其他类型的参与
字符串类型的参与:字符串与字符串比较,是通过ASCII码进行比较的。
通过从左到右,一个一个比较的。
<script>
console.log("2b" < "2c"); //true
console.log("ac" > "ab"); //true
console.log("我" > "学"); //true
</script>
总结
a的ascll码是97,后面的字母加1就行了。
A的ascll码是65,后面的大写字母加1就行了。
如果是汉字的话,就先找到汉字的拼音。例如,我是wo,学是xue,w与x进行比较就能得出比较的结果。如果第一个字母一样,就用后面的字母比较。
3.赋值运算符
加赋值(+=)、减赋值(-=)、乘赋值(*=)、除赋值(/=)、余赋值(%=)
<script>
var a=1;
a+=3;
console.log(a); //4
a-=1;
console.log(a); //3
a*=2;
console.log(a); //6
a/=2;
console.log(a); //3
a%=2;
console.log(a); //1
</script>
4.逻辑运算符
逻辑运算符:与、或、非
与:相当于开关的串联,满足所有条件,才能运行。
或:相当于开关的并联,满足其中一个条件,就可以运行。
非:置反。表否定。
布尔类型参与逻辑运算
!true:取反之后,变成false
逻辑非运算符可以出现很多次。
<script>
console.log(!true); //false
console.log(!!true); //true
</script>
数字类型转换为布尔类型
<script>
console.log(Boolean(0)); //false
console.log(Boolean(1)); //true
console.log(Boolean(0+5)); //true
console.log(Boolean(0-5)); //true
</script>
总结:0是false,其他数是true
数字类型的特殊值参与逻辑运算
<script>
console.log(Boolean(NaN)); //false
console.log(Boolean(NaN+1)); //false
console.log(Boolean(Infinity)); //true
console.log(Boolean(Infinity+1)); //true
</script>
总结:NaN与其他数运算,返回false
infinity与其他数运算,返回true
其他类型参与逻辑运算
未定义类型:undefined
空对象类型: null
<script>
console.log(Boolean(undefined)); //false
console.log(Boolean(null)); //false
console.log(Boolean(undefined+1)); //false
console.log(Boolean(null+1)); //true
</script>
字符串参与逻辑运算
<script>
console.log(Boolean("")); //false 因为空字符的值为0
console.log(Boolean(""+1)); //true
console.log(Boolean("学习")); //true
</script>
总结:空字符为false,非空字符为true
5.三目运算符
思路:
①先是声明一个分数变量,并且将66赋值给分数。
②三目运算判断:如果分数大于等于60,就返回及格;如果分数小于60,就返回不及格。
③声明一个值变量,并且将得到的返回结果赋值给值。
④打印值。
<script>
var score=66;
var value=score>=60?"及格":"不及格";
console.log(value);
</script>
总结
三元运算符的格式:A ? B : C
① A:它需要返回一个布尔值;其他类型也可以,只是需要隐式转换为布尔值。
② 如果A部分为真,就返回B;如果A部分为假,就返回C。
③ B与C:可以是任意类型的数值,或者是一些表达式。
④ 在实际的开发中,三元运算符会被经常用来赋值。
6.位运算符
把十进制转成二进制,进行运算,结果再转成十进制。
参考教程:https://www.w3school.com.cn/js/js_bitwise.asp
篇章
上一篇:js笔记3-变量和数据类型
下一篇:js笔记5-选择结构
推荐文章:JavaScript知识点1