Js隐式类型转变,数据类型

时间:2020-03-23 01:17来源:亚洲城ca88唯一官方网站
时间: 2019-12-27阅读: 62标签:类型隐式转换介绍在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一

时间: 2019-12-27阅读: 62标签: 类型隐式转换介绍在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算,这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换,例如1 "0"这行代码在js中并不会报错,编译器在运算符时会先把右边的"0"转成数字0然后再比较大小

鉴别空对象看齐能否进行属性操作。

关于== 和 ===的性能,有人会觉得, == 的性能会比 === 的性能要慢。没错,== 确实是要比 === 多花一点时间,但是这只是微秒级的差别,也就是万分之一秒左右,对于程序来说可忽略不计。但是无论 == 还是 === 都会检测类型,只是检测出来之后各自的操作不一样。

双等会进行隐式类型转换,==两侧数据类型不一样时,会转换成一样的在进行比较。

空数组的toString()方法会得到空字符串,而空对象的toString()方法会得到字符串[object Object](注意第一个小写o,第二个大写O哟)

1 若等号一侧为 布尔值 就都转换成布尔值进行比较。

逻辑运算符优先级高于关系运算符1.逻辑非将其他数据类型转换成布尔类型2.关系运算符将其他数据类型转换成数字

NaN和任何内容比较结果都为false

valueOf() 方法可返回 Boolean 对象的原始值。

onchange检测内容(在表单中):1 在单选和复选框中,检测checked值是否发生变化(检测是否勾选或取消勾选)

console.log( [ ] == 0) //true 空数组的toString()方法会得到空字符串console.log( ![ ] == 0) //true 空数组转布尔得到true 然后取反得到falseconsole.log( [ ] == [ ]) //false console.log( !{} == 0) //false 空对象console.log( {} == {}) //false 引用数据类型存在堆中,堆中存储的是地址console.log( !{} == {}) //false

2在其他表单控件中,检测value值发生变化。

3 表单控件(input textareea selecter)要获取他们的值获取的是value。

 

在js中只有nan类型的数据不等于自己,NaN不能拿来与数字做比较,若比较则一直为假。

冒泡事件,不止存在input和label中当写单选框和多选框时input被label标签包裹住,那么点击label触发input input会产生一个冒泡事件导致label被再次点击,有两中解决方法

1 input[0].onclick = function(e){

e.stopPropagation();

};用此函数来解决冒泡事件。

2 不谢label的点击事件,改为写label的onchange事件

 

或者 ||或条件只要有一个成立整体就会成立。

并且&&两个条件都成立整体才成立。

onchange发生改变。如input.onchange.=function(){}

checked选中checked=true;

checked=false;

 

console.dir()查看括号中的对象有多少属性和方法。

typeof 查看类型 如var a=0;alert(typeof a)

parseInt ()取整

parsefloat()取小数

isNaN(要检测的内容)如果转化结果是一个数字就返回false,如果不是一个数字就返回true,转换所调用方法为number。isNaN会进行隐式类型转换。

转换成字符串用toString如:var a=123 a=a.toString();

##ECMAscript##

js中的数据类型

标准制定的数据类型划分

可通过下标来获取指定位置的数字。可同过length来取得长度。

1.基本类型:

number(数字)数字类型包含从负无穷到正无穷的数字以及NaN(全成not a number 是数字类型但不是一个数字) NAN何时出现:一般为number的类型的数字中不会出现NAN只有想将非number类型的其他类型的数字强行转换成number并且被转换的其它类型并不是一个单纯的数字组合而成时才会产生NAN这个类型,NAN不等于任何东西,并且不等于他自己。2检测一个内容是否是NAN时,可以使用isNaN();

string(字符串)任何在引号中包含的一串字符都是字符串。

undefined未定义

boolean(布尔值) 只有两个属性true false 可用于判断。

null(空对象又叫找不到对象)如当获取对象时没有获取到。空对象特性:与非空对象区别,空对象不能添加自定义属性。在typeof中null空对象的类型也是对象。

当显示为空对象时检查代码。如何检查一个对象是否为空:空对象不能进行属性操作,当获取元素没有获取到时会拿到一个空对象。

2.对象类型object(复合类型)可存储任意类型数据

 

array[数组]空的数组不等于空对象 数组中可以存取任意类型数据

元素对象

object(对象) 如 var obj={} var obj2=new object{}

 

function不在标准数据类型

在typeof(运算符,查看数据类型)中数据类型分为:

number(数字)、string(字符串)、undenfined(未定义)、boolean(布尔值)、object(对象)、function(函数)

在typeof中null空对象的类型也是对象。

number:正无穷(Number.POSITIVE_INFINITY )

负无穷(Number.NEGATIVE_INFINITY )

NAN

console.dir()查看括号中的对象有多少属性和方法。

typeof 查看类型 如var a=0;alert(typeof a)typeof 返回值为字符串。


数据类型转换:parseInt ()取整 /从左向右一位一位去查看,如果遇见以为非数字的就把之前的查看到的数字返回/parseInt(要转换的数字,进制)如果第0位就是数字就是NaN

parseFloat()转换成小数 在程序中叫浮点数 从左向右一位一位匹配直到遇到一个非数字就返回这位前边的数字(可以匹配一个小数点)如果第0位就是数字就是NaN

Number(要转换的数字):先看完这个内容,在转换成数字从左向右看完所有的字符,如果完全符合数字的规则就转换,如果不符合数字的规则就返回NaN。强制转换类型强制转换为nimber。

若将true转换成数字为1,

false转换成数字为0.

空数组转换成0

数组只有1位时会用这一位去转换,并且只转换数字和字符串,其他 的都是NAN。数组有多位

只会被转换成NAN。

 

强制类型转换,或显示类型转换:如

转化成数字:parseInt、parseFloat、number

强制转化为字符串:

要转化的内容.tostring

2String(要转换的内容)

强制转化为布尔值:

Boolean(要转换的内容)

真:true 非0数字 非空对象 非空字符串 空数组不为空对象

假:false NaN 0 null(空对象) 空字符串 underfined

隐式类型转换:如下

1. 号遇见字符串时,会将两侧内容都转换成字符串,进行字符串链接。

2. 号的两侧没有字符串,则优先用number转换成数字,进行 法运算。如果不能转换成数字,则转换成字符串进行链接。

3.-,*,/,%,-=,*=,/=,%=都是只有数字运算的功能,所以在使用时,都会去将其他类型转换成数字。

 

 

###关系运算符结果只会是布尔值###

1 如果等号一侧为布尔值,就都转换成布尔值进行比较。

2 若两侧都转换成false,就两侧直接转换成false进行比较。

3 如果两侧有一侧是数字,就都转换成数字进行比较。

 

双等是先转换类型在进行比较。

< > <= >= == != === !==

==和=== 以及!=和!==的区别

== 和!=会进行隐式类型转换,把左右两侧的数据类型转成一样的之后,在去比较

===和!== 进行比较时,也会进行数据的比较,如果数据类型不同则判定两边不相等。

逻辑运算符

&&与 || 或 ! 否 返回的结果都是true和false,

!会有隐式类型转换(bollean)

 

3隐式类型转换浏览器自己进行转换。其他类型转换成数组,主要调取Number方法目前触发隐式类型转换的如下:

当加号左右有一位是字符串,会把另一也转成字符串。使用 号时两边没有字符串时优先尝试将左右两边转换成数字。若不能转换成数字就转换成字符串进行连接。

-,*,/,%,-=,*=,/=,%= 运算符左右两侧转换成数字进行运算。

 

NAN解释(not a number)类型为number NaN不等于任何数,并且不等于他自己。

isNaN(要检测的内容)如果转化结果是一个数字就返回false,如果不是一个数字就返回true,转换所调用方法为number。isNaN会进行隐式类型转换。

转换成字符串用toString如:var a=123 a=a.toString();或a=string(a)

若转换数组,如果字符串为空就转换成一个空的字符串若数 组中有的话就会转换成字符串。

 

真:true 非空字符串5,非0数字,非空对象document,非空对象(因为空数字不为空对象)

假:false 空字符串,数字0 和NAN,空对象,undenfined。

取反也可以进行隐式类型转换。

Bollea

 

表达式结束时加分号 调用时要分号 if for循环 和正常声明一个函数结束不要加分号

 

编辑:亚洲城ca88唯一官方网站 本文来源:Js隐式类型转变,数据类型

关键词: 亚洲城ca88