js中有六种数据类型,包括五种基本数据类型(Number,String,Boolean,Null,Undefined),和一种混合数据类型(Object)..
ECMAscript是什么: 其实我们天天写的js代码就是由ECMAscript来定义的,它是一套标准,一个核心,比如js中的定义变量var不能写成vao,它除了规定js的语法之外还规定了js中的数据类型
HTML标签的类型:block、inline、inline-block、table。。。意义在于根据不同的类型可以设置不一样的css,不是那个类型要转才能用。
JS中的数据类型: 比如var i=666;要写给浏览器看,浏览器如何分辨了。。。其实js(ECMAscript)中提供了一个小小的运算符type of(类型 判断),就是用来判断数据类型的,比如alert(typeof i);弹出i的数据类型。
引号’’或者”” 只要是引号就是字符串的类型,知道是个字符串就可以获取字符串的长度。1 2 3 4 5 var h="string " ;(其中带有空格也算字符串)alert(h.length); alert(h.charAT(3 ));弹出i charAT()方法是根据字符串的下标获取子字符串的下标(0 ,1 ,2 ,3 );
布尔值: 1 2 3 4 5 比如var b=true ; (只有两个值true or false ) 可以alert(typeof b); 比如 if (6 <66 ){}就是true if (666 <66 ){}就是false
object对象: js中对象是一组属性与方法的集合。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 var obj=window ;alert(typeof obj);window 对象 var obj=document alert(typeof obj);文档对象 1 、constructor 属性:构造函数属性,可确定当前对象的构造函数。var o = new Object(); console.log(o.constructor == Object);//true var arr = new Array(); console.log(arr.constructor == Array);//true 2、hasOwnProperty(propertyName):判断属性是否存在于当前对象实例中(而不是原型对象中)。 .....等等等等。
数组: 1 2 3 4 5 var arr=[1 ,2 ,3 ,4 ];alert(arr.length); arr[2 ]=345 ; alert(arr); 数组也是一个object。
json: 1 2 3 4 5 6 var json={name :'hardy' ,age :18 };alert(json.name+'年年' +json.age+'岁' +) json也是一个object对象 json只是平时的命名,可以写成 var abc={name :'hardy' ,age :18 };
null: 1 null 类型被看做空对象指针,前文说到null 类型也是空的对象引用。只有一个值,即null 值,所以,在你 用typeof 操作符去检测null 类型的值时,结果是object类型。
Undefined: 这个就厉害了,你们经常定义了一个那啥,最后发现她Undefined…1 2 3 4 5 6 7 8 9 var Sex = "女" ;var mygirlfriend;alert(Sex); alert(mygirlfriend); alert(girlfriend); alert(typeof Sex); alert(typeof mygirlfriend); alert(typeof girlfriend);
数据转换 字符串变成数字: ECMascript给我们提供了一个方法Number();1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 var h='100' ;alert(h+100 ) alert(Number (h)+100 ) var h='00100' ;alert(Number (h)) var h='' ;或者 var h=' ' ;alert(Number (h)) var h=true ;或者 var h=false ;alert(Number (h)) var h=[];var h=['' ];alert(number(h)) var json={abc :123 };alert(number(json)) var h=null alert(number(h)) 转不出来的东西弹出NaN
parseInt方法: 1 2 3 4 5 6 7 8 9 10 11 var h="100px;" alert(parseInt (h)); 转化成字符串 工作原理:出现非数字截断,最后弹出100 ,所以即使是 var h="100px12345678;" alert(parseInt (h)); 弹出的还是100 var h="13.14元" alert(parseInt (h)); 弹出13 ,.后面的被截断
parseFloat方法: 1 2 3 4 5 6 var h="13.14元" 这时候需要用parseFloat (); alert(parseFloat (b)); 弹出13.14 但是如果是var b="13.1.4元" 弹出13.1
parseFloat方法: 1 2 3 4 5 6 7 8 9 10 var h="13.14元" 这时候需要用parseFloat (); alert(parseFloat (b)); 弹出13.14 但是如果是var b="13.1.4元" 弹出13.1 alert(parseFloat (b));可以写成 alert(parseFloat (b,10 )); alert(parseFloat (b,16 )); 就是按10 进制或者16 进制转。
1、parseInt与number的区别,number全部转换,parseInt从左到右依次 2、parseInt与parseFloat的区别,parseInt不认识小数点 3、parseFloat认识一个小数点
于是可以用parseInt和parseFloat判断一个数是整数还是小数 1 2 3 4 5 6 var num='5.20' ;if (parseInt (num)===parseFloat (num)){ alert("整数" ); }else { alert("小数" ); }
需要说的是一个谜一样的数:NaN,它是非数字类型,为什么说是谜一样的数字呢,其实…..只是为了耍酷。
它的特点: ① 涉及到的 任何关于NaN的操作,都会返回NaN ② NaN不等于自身。
什么是NaN? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 NaN :not a number(不是数字的数字类型)var a=Number ('hhh' );alert(typeof (a)); 一旦写程序遇到了NaN ,肯定进行了非法运算操作 alert('200px' -100 ); if (a){alert('真' ); } else {alert('假' ); } 特性:NaN 是个假货 NaN 与自己都不相等alert(a===a)
js中稀奇古怪的隐式类型转换 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 显示类型转换(强制类型转换): number() parseInt ()parseFloat ()隐式类型转换: -*/%可以让字符串操作之后变成数字 alert('200'-3);/ /197(数字) alert('200'+3);/ /2003(字符串) var a='10'; a++; alert(a);/ /11(数字) 数字比较与字符串比较 alert('10'>9);/ /true 字符串比较是一位一位的进行比较 alert('100000000000'>'9');/ /false !取反 把右边的数据类型转成布尔值 alert(!true);/ /false alert(!ok);/ /false alert(!100);/ /false == alert('2'==2)/ /true 对地址进行比较,最后true alert('2'===2);(三个等号更严谨)
隐式转换与显式转换都有一个共性,就是转化不成功的时候弹出NaN。 1 2 alert(Number ('....' )); alert('....' -9 );
isNaN() 1 2 3 4 5 6 7 8 9 10 11 isNaN :is not a number 是不是不是一个数字(不是数字)(它天生烦数字) alert(isNaN (250 )) alert(isNaN ('hh' )) isNaN ();可以用于判断某些值是不是数字 alert(isNaN (function ( ) {alert(1 );})); 在isNaN 内部是先通过Number 进行转换之后才确定烦不烦数字,只要是number转换出来是数字,就false ,所以isNaN 只是讨厌数字但是不讨厌NaN 。
isNaN应用 1 2 <input type='text' id="text" > <input type='button' id="btn" value='测试当前数据类型' >
“从html中直接获取的值(xxx.value)都是string类型”
“加一条if语句,用isNaN判断数据类型”