数据类型运算符流程序调节制语句,数值转换

By admin in 4858美高梅 on 2019年4月22日

1、.toString()可以将有着的的数码都转移为字符串,可是要免除null 和 undefined

比如将false转为字符串类型

<script>

``var str = ``false``.toString();

``console.log(str, ``typeof str);

</script>

回来的结果为 false,string

 

探望null 和
undefined能还是无法退换为字符串javascript

<blockquote style=``"margin-right: 0px;" dir=``"ltr"``><pre ``class``=``"html" name=``"code"``><script>

``var str = ``null``.toString();

``console.log(str, ``typeof str);

</script>

结果程序报错

<script>

``var str = undefined.toString();

``console.log(str,``typeof str);

</script>

程序也报错

.toString() 括号中的能够写1个数字,代表进制,对应进制字符串

二进制:.toString(2);  

八进制:.toString(8);

十进制:.toString(10);

十6进制:.toString(1陆);

如:

var c = 123 ;

console.log(c.toString(8));

结果为173

1、.toString()可以将持有的的数目都更动为字符串,但是要免除null 和 undefined

诸如将false转为字符串类型

<script>

``var str = ``false``.toString();

``console.log(str, ``typeof str);

</script>

回来的结果为 false,string

 

看看null 和
undefined能否改换为字符串javascript

<blockquote style=``"margin-right: 0px;" dir=``"ltr"``><pre ``class``=``"html" name=``"code"``><script>

``var数据类型运算符流程序调节制语句,数值转换。 str = ``null``.toString();

``console.log(str, ``typeof str);

</script>

结果程序报错

<script>

``var str = undefined.toString();

``console.log(str,``typeof str);

</script>

先后也报错

.toString() 括号中的能够写多少个数字,代表进制,对应进制字符串

二进制:.toString(2);  

八进制:.toString(8);

十进制:.toString(10);

十陆进制:.toString(1陆);

如:

var c = 123 ;

console.log(c.toString(8));

结果为173

JavaScript的数据类型

各个数据类型

  • 数值(Number):整数和消暑
  • 字符串(String):字符组成的文件(”a”、’a’)
  • 布尔值(Boolean):只有真(false)假(true)两个值
  • null:表示空值,此处的值为空
  • undefined:未赋值
  • 对象(Object):种种值的晤面

其中数值、字符串、布尔值是本来数据类型,它们是最核心的数据类型;对象是合成数据类型,是有三个原始数据类型和成,是一个存放各样值的器皿,对象可分为多少个子类型:狭义对象(Object)、数组(array)、函数(function);undefined和null是多个独特的值

JavaScript中加号运算符”+” 运算进程理解

一)
假若中间2个操作数是目的,则对象会奉公守法对象到原始值的转变规则转换为原始值。日期对象通过toString()方法实行调换,其余对象则经过valueOf()方法施行转变。由于许多对象都不抱有valueOf()方法,因而就会调用toString()方法来拓展变换。 
二)在展开对象到原始值的转变后,借使内部3个操作数是字符串的话,则另三个操作数也会调换为字符串,然后开始展览字符串的连日操作。 
三)不然,七个操作数都将转移为数字(也许NaN),然后开始展览加法操作。

今非昔比门类操作数相加后的类型如下表:

  undefined1 null2       boolean3 number4 string
undefined number(NaN) number number number string
null number(NaN) number(0) number number string
boolean number(NaN) number(1或0) number number string
number number(NaN) number number number string
string

string

string string string string

 1、

“a”+undefined = “aundefined”;

总计:任何基本数据类型(除String外)+undefined都为number类型,值为NaN

 2、

true+null=1;(true转为1,null转为0)

false+null=0;(false转为0,null转为0)

10+null=10;

null+“str”=”nullstr”;

3、

true+true=2;(true转为1)

true+false=1;(true转为1,false转为0)

10+true=11;(true转为1)

true+“1”=“true1”;

4、

6+“77”=“677” 

 

2、String()能够将null和undefined调换为字符串。

譬如将null调换为字符串

<script>

``var str = String(``null``);

``console.log(str, ``typeof str);

</script

  

回来的结果为 null,string

将undefined调换为字符串 

<script>

``var str = String(undefined);

``console.log(str, ``typeof str);

</script>

归来的结果为 undefined,string

 

console.log(String(077));

回到结果:6叁(假诺以0开头也许以0x开首也会被先转为进制数,在转为字符串)

2、String()能够将null和undefined转变为字符串。

比方说将null转变为字符串

<script>

``var str = String(``null``);

``console.log(str, ``typeof str);

</script

  

回来的结果为 null,string

将undefined调换为字符串 

<script>

``var str = String(undefined);

``console.log(str, ``typeof str);

</script>

再次来到的结果为 undefined,string

 

console.log(String(077));

回去结果:陆三(要是以0开首或然以0x发轫也会被先转为进制数,在转为字符串)

typeof和instanceof

typeof用于再次回到1个多少的原有数据类型
数值:typeof 1 // “number”
字符串: typeof ‘1’ // “string”
布尔: typeof true // “boolean”
函数:返回function
undefined:返回undefined
上述能够看看判定3个变量类型能够选拔typeof
var a = xxx
if(typeof a === “number”){console.log(a)}

Window/{ }/[ ]/null 都返回 object
null重临object是1个历史bug,本质上是三个接近于undefined的奇特值
因为typeof对 { }和[ ]都回去object所以要用instanceof去分辨
{} instanceof Array // false
[] instanceof Array // true

JavaScript中parseInt()和parseFloat()非强制调换,Number()强制调换

NaN

Not a Number
它不是一种独立的数据类型,而是二个非正规的数值,它的数据类型属于number,能够领悟为不是三个数字的数字
它和其余包涵其本人小编都不等于(===)

一、parseInt(string, radix): 函数可分析叁个字符串,并赶回二个整数。

当忽略参数 radix , JavaScript 暗中认可数字的基数如下:当参数 radix 的值为
0,或未有设置该参数时,parseInt() 会根据 string 来判定数字的基数。

  • 假定 string 以 “0x” 开始,parseInt() 会把 string
    的其他部分解析为十陆进制的整数。
  • 比如 string 以 0 初步,ECMAScript版本小于ECMAScript
    伍,当字符串以”0″开始时暗中认可使用八进制,ECMAScript 5运用的是10进制
  • 如果 string 以 1 ~ 玖 的数字初步,parseInt()
    将把它解析为10进制的整数。

例:

parseInt(“123”);123

parseInt(“ 0消费”);0(忽略前面包车型大巴空格)

parseInt(“0xf”);15

parseInt(“0 xf”);0       (中间的空格不忽视)

非数值转化为数值

Number():将字符串转化为数值然则字符串必须都以数字
parseInt():
将字符串转为整数,如若字符串尾部有空格,空格会被机关删除;如若参数不是字符串,则会先转为字符串再转移;字符串转为整数的时候,是四个个字符依次转变,借使境遇无法转为数字的字符,就不再举办下去,重临已经转好的有的;借使字符串的第3个字符无法转化为数字(前面跟着数字的正负号除此而外),再次回到NaN;注意初阶是不是为进制的起始;并且运转转换为数值时方可有第壹个参数:parseInt(‘1000’,
2) // 八 那儿只顾进制的平整
parseFloat():将字符串转化为浮点数,规则同parseInt,可是true/null/空字符串时
Number为数值,它为NaN

2、parseFloat(string): 函数可分析二个字符串,并重返三个浮点数。

==和===

===时严俊意义的相持,且不会再比较时开展数据类型转变,NaN===NaN //false
==为值格外,比较时会调换数据类型

  • 万一三个值类型一样,则实行严刻相等的运算
  • 若果多个值的类型分歧
  • 倘若贰个是null,三个是undefined,那么相等
  • 设若多个是数字,3个是字符串,先将字符串转为数字,然后相比较
  • 假如二个值是true/false则将其转为1/0相比
  • 固然2个值是目的,八个是数字或字符串,则尝试选拔valueOf和toString转变后比较
  • 任何不等于

提示和注释

起来和尾声的空格是同意的。

提醒:假设字符串的率先个字符不能够被撤换为数字,那么 parseFloat() 会返回NaN。

提示:假设只想解析数字的整数部分,请使用 parseInt() 方法。

break和continue

break 用于强制退出循环体,试行循环前面的口舌
continue 用于退出此番巡回,试行下次巡回
也得以包容label使用跳出label标志的循环体或本次巡回

实例

void 0 和 undefined

void 会施行前边的表明式并赶回
undefined,可是某个情境下undefined能够被赋值,比方函数中,那样就不可能用undefined来进展剖断了。所以用void
0重临undefined来开始展览剖断。既减弱了在原形链上搜索 window.undefined
的时间,也制止了误用被修改过的 undefined。

console.log(壹+1);//输出二,八个数字加法运算
console.log(“2″+”4”);//输出’2四’,多个字符串类型的做字符串拼接
console.log(贰+”四”);//输出’二肆’,3个是数字叁个是字符串,数字转化为字符串后拼接
console.log(+”四”);//输出四,唯有叁个字符串会调换来数字输出

var a = 1;
a+++a; //输出3,精晓为(a++)+
a,++运算符比+运算优先级更加高,a++结果为一,a变成了二,所以结果为1+2=③。
typeof
a+二;//输出”number二”,typeof的预先级高于+运算,所以输出字符串number,字符串与数字相加时,数字调换为字符串,然后字符串拼接就改成”number二”

var a = 1;
var b = 3;
console.log( a+++b );//输出4,(a++)+b

数组的便宜
var arr = [3,4,5]
for (var i = 0; i < arr.length; i++){console.log(arr[i]*arr[i])}

for…in的便利

var obj = {
name: ‘hunger’,
sex: ‘male’,
age: 28
}
for(var key in obj){console.log(key+”:”+obj[key])}

var a = 1, b = 2, c = 3;
var val = typeof a + b || c >0
console.log(val)
((typeof a )+ b)
typeof优先级高所以左侧为”number2″,短路或左边为true则为true左侧不实行,将”number二”赋值给val

var d = 5;
var data = d ==5 && console.log(‘bb’)
console.log(data)
(d ==5 )&& console.log(‘bb’)
d==伍为true,实践左边打字与印刷bb,&&再次回到第3个布尔值为false的值假如未有,则赶回最终贰个,右边的值为undefined

var data2 = d = 0 || console.log(‘haha’)
console.log(data2)
0为false则进行左边打字与印刷haha并再次回到undefined赋给d,d为undefined赋给data二

var x = 4858美高梅 ,!!”Hello” + (!”world”, !!”from here!!”);
console.log(x)
false为0,treu为壹 ,逗号运算符返还前边的值所认为二

&& 重临第7个 布尔值为false 的值 假若没有 则重返最终二个
|| 再次回到第二个 布尔值为 true 的值 假如未有 则重回最后三个

例子 1

在本例中,大家将使用 parseFloat() 来分析不相同的字符串:

<script type="text/javascript">

document.write(parseFloat("10")) 
document.write(parseFloat("10.00")) 
document.write(parseFloat("10.33")) 
document.write(parseFloat("34 45 66")) 
document.write(parseFloat(" 60 ")) 
document.write(parseFloat("40 years"))
document.write(parseFloat("He was 40"))

</script>

输出:

10
10
10.33
34
60
40
NaN

例子 2

下面包车型地铁例证都回到 3.14:

<script type="text/javascript">

document.write(parseFloat("3.14")) 
document.write(parseFloat("314e-2")) 
document.write(parseFloat("0.0314E+2")) 
document.write(parseFloat("3.14more non-digit characters")) 

</script>

输出:

3.14

例子 3

上边包车型地铁例子将赶回 NaN:

<script type="text/javascript">

document.write(parseFloat("FF2")) 

</script>

输出:

NaN

三、Number():强制转化,假诺转变的是字符串,字符串内务必都是卓有成效的数字字符才能够调换,如过有多少个不是一蹴而就数字,则不能转移,会回来NaN。

var cur=”1adc”;

var str=”1″;

console.log(Number(cur));//NaN

console.log(Number(str));//1

四、Booleanr():强制转化

一、除0(-0)之外的装有数字,调换为boolean型都为true

2、除“”(空字符串)之外的全数字符转为boolean
都为true,空格字符串也为true

3、null和undefined转换为boolean型是false

四、特殊数字NaN转为boolean型也为false

(有就true,无就false,特殊NaN永久都以false)

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有