数据类型 数据类型转换 运算符
鉴别空对象看齐能否进行属性操作。
双等会进行隐式类型转换,==两侧数据类型不一样时,会转换成一样的在进行比较。
1 若等号一侧为 布尔值 就都转换成布尔值进行比较。
NaN和任何内容比较结果都为false
onchange检测内容(在表单中):1 在单选和复选框中,检测checked值是否发生变化(检测是否勾选或取消勾选)
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循环 和正常声明一个函数结束不要加分号