js基础之数据类型的转化+运算符+Math相关方法

Posted 傻fufu的小陶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js基础之数据类型的转化+运算符+Math相关方法相关的知识,希望对你有一定的参考价值。

数据类型之间的转化

一、强制转化👇(只有三种)
大写赋值
Number()
String()
Boolean()

转字符串👇
1.数字类型转化为字符串:
console.log(1,String(100));//1"100"
2.布尔值转化为字符串:
console.log(1,String(true));//1"true"
3.空值转化为字符串:
console.log(1,String(null));结果为1"null"
4.未定义转化为字符串:
console.log(1,String(underfined));结果为1"undefined"

转数字👇
纯数字类型的字符串(“10”) => 对应的数字10
非纯数字类型的字符串(“10a”) => NaN
true 转化为数字 1
false 转化为数字 0
null 转化为数字 0
undefined 转化为数字 NaN
空字符串和空格转化为数字也为0

转布尔值👇
字符串只要有内容,转成布尔值就为true,空格也是内容
“”,0,NaN,null,undefined=>false
比如:空字符串就不是内容,👇
console.log("");//false

console(0,NaN,null,undefined);//都为false

二、隐式转换

1.数字和数字的运算

2.字符串,布尔值,null,undefind 和 数字运算 (隐式类型转换)
(1) 字符串和数字
a. 字符串 遇到 “+” 会拼接形成新的字符串

var a = "10";
var b = 1;
var c = a + b;
console.log(c);//101
var num = 1;
var str = "我有" + num + "头小毛驴";
console.log(str);//我有1头小毛驴

b.字符串遇到“- * / %”会先隐式转换为数字,再进行运算
纯数字类型的字符串(“10”) => 对应的数字10
非纯数字类型的字符串(“10a”) => NaN

(2) 布尔值和数字 先隐式的转化为数字再计算
true 转化为数字 1
false 转化为数字 0

(3) null 和 数字
null 转化为数字 0

(4) undefind 和 数字
undefined 转化为数字 NaN


关系运算符
用于进行比较的运算符称作为关系运算符:
小于(<)、大于(>)、小于等于(<=)、大于等 于(>=)
相等()
不等(!=)
全等(恒等)(
=)
不全等(不恒等)(!==)

作用:
1.数值比较
2.条件判断表达式

优先级:>、 >=、 <= 大于==、 !=、=、!

和其他运算符一样,当关系运算符操作非数值时要遵循一下规则:
1.两个操作数都是数值,则数值比较;
2.两个操作数都是字符串,则比较两个字符串对应的字符编码值;
3.两个操作数有一个是数值,则将另一个(字符串\\布尔值)转换为数值,再进行数值比较;
4.null\\undefined 遇到>、 >=、< <= 大小比较时,会隐式转换为数字
遇到==、 !=、===、!==时不转换,没有可比性.
注意:undefined转为数字是NaN
NaN和任何值都不相等,和自己也不相等
5.但强制规定null == undefined;在数值上相等

var c,d;
console.log(c === d);//undefined==undefined,结果为true

逻辑运算符
&&与/且 同真为真,遇假为假(依次从前往后找,找到假的就终止)
||或 同假为假,遇真为真(依次从前往后找,找到真的就终止)
!非 颠倒是非,条件反转
非>且>或


赋值运算符
a+=10;
=、+=、-=、*=、/=、%=把变量的值修改后赋给原变量

运算符的优先级:
() . [ ] ! > – ++ typeof >算数运算符>关系运算符>逻辑运算符(!比较特殊)>赋值运算符(++ --比较特殊)


Math对象 数学相关方法(完成某个特定功能的工具)

1.Math.random() 随机生成一个0-1的随机数 [0,1)

var num = Math.random();  // 随机生成一个0-1的随机数,赋值给变量num
	var num = Math.random()*100; // [0,1)*100  => [0,100)  有小数 
	console.log(num)

2.Math.ceil() 接收一个数值,对其向上取整并返回 (舍去小数 进一位)
3. Math.floor() 接收一个数值,对其向下取整并返回 (舍去小数)
4. Math.round() 接收一个数值,对其四舍五入并返回(>=0.5 进一位 , <0.5 舍去)

var upNum = Math.ceil(num);  // 对num向上取整之后 赋值给变量upNum
	console.log(upNum);
var downNum =  Math.floor(num);
	console.log(downNum);
var rNum = Math.round(num);
	console.log(rNum);

向下取整还可以用parseInt,toFixed(0)
5. Math.min() 接收一个或多个数值(逗号分隔),取最小值并返回
6. Math.max() 接收一个或多个数值(逗号分隔),取最小值并返回
7. Math.abs() 接收一个数值,返回其对应的绝对值absolute
正数的绝对值 是正数 |n| = n
负数的绝对值 是正数 |-n| = n
8. Math.pow(m,n) 接收两个数值,返回 m的n次幂 m^n
9. 数值 Math.PI π(圆周率)

var min = Math.min(2,8,4,6,5,7,9,3,1);
	console.log(min);
var max = Math.max(2,8,4,6,5,7,9,3,1);
	 console.log(max);
var num = Math.abs(10);
	var num = Math.abs(-10);
	 console.log(num);
var num = Math.pow(2,10);
console.log(num);
console.log(Math.PI);

以上是关于js基础之数据类型的转化+运算符+Math相关方法的主要内容,如果未能解决你的问题,请参考以下文章

js基础之内置对象

JavaScript入门基础之概述变量数据类型运算符

#001前端基础-JS-基础数据类型

JS基础入门篇—JSON和Math

js笔试题系列之——基础类型与运算符

js 数值精确运算使用math.js