目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
JavaScript 一种直译式脚本语言,是一种动态类型、弱类型.基于原型的语言。所谓的弱类型语言,是相对强类型语言来说的,在强类型语言中,变量类型有多种,例如int char float boolean 等不同的类型,相互转换有时需要强制转换而javascript只有一种类型var ,为变量赋值时会自动判断类型并进行转换。
JavaScript 的数据类型,共有6种。分别是undefined、null、boolean、number、string、object
JavaScript 语言的每一个值,都属于某一种数据类型。
1)Undefined:Undefined类型只有一个值,即特殊值undefined。在使用var声明变量,但未对其加以初始化时,这个变量值就是undefined。
2)Null:Null类型是第二个只有一个值的数据类型。其特殊值就是Null。从逻辑角度上看,null是一个空的对象指针。而这也正是使用typeof操作符检测null值,会返回“object”的原因。
3)Boolean:即布尔类型,该类型有两个值:true和false。需要注意的是,Boolean类型的字面值true和false是区分大小写的。也就是说,True和False(以及其它的混合大小形式)都不是Boolean值,只是标识符。
4)Number:该类型的表示方法有两种形式,第一种是整数,第二种为浮点数。整数:可以通过十进制,八进制,十六进制的字面值来表示。浮点数:就是该数值中必须包含一个小数点,且小数点后必须有一位数字。
5)String:String类型用于表示由零或多个16位的Unicode字符组成的字符序列,即字符串。至于用单引号,还是双引号,在js中还是没有差别的。记得成对出现。
6)Object:Object类型,称为对象,是一组数据和功能(函数)的集合。可以用new操作符后跟要创建的对象类型的名称来创建。也可以用字面量表示法创建。在其中添加不同名(包含空字符串在内的任意字符串)的属性。
Boolean()
可以对任何数据类型的值调用Boolean函数,而且总会返回一个Boolean值。至于返回的是这个值是true还是false,取决于要转换值的数据类型及其实际值。
isNaN()
NaN:即Not a Number,表明这个数值不是数字,表明本来要返回数值的操作数未返回数值的情况。特点:与任何值都不相等,包括NaN本身。
isNaN();函数 接收一个参数,判断这个参数是否不是数值,不是数值返回true。
Number()
Number() 函数把对象的值转换为数字。
parseint()
同Number()函数,把对象的值转换为数字,可以加多一个表明进制的参数
区别:一是对空字符返回NAN,而Number()函数返回0
二是会忽略字符后面的非字符
parseFloat()
同Number()函数类似,区别就是只识别十进制,不会忽略第一个小数点
//Number() 把对象的值转换为数字。
//我们将尝试把不同的对象转换为数字。
var test1= new Boolean(true);
var test2= new Boolean(false);
var test4= new String("999");
var test5= new String("1.1");
var test6= new String("0xf");
var test7= new String("");
var test8= new String("11 54");
document.write(Number(test1));//1
document.write(Number(test2));//0
document.write(Number(test4));//999
document.write(Number(test5));//1.1
document.write(Number(test6));//15
document.write(Number(test7));//0
document.write(Number(test8));//NaN
//parseInt() 可解析一个字符串,并返回一个整数。
//我们将使用 parseInt() 来解析不同的字符串,着重于其是否数值模式,
parseInt("12345red");//返回 12345
parseInt("");//返回 NaN
parseInt("22.5");//返回 22
parseInt("070");//返回 56(八进制解析)
parseInt("70");//返回 70(十进制解析)
parseInt("0xf");//返回 56(十六进制解析)
parseInt("10");//返回 10(默认十进制)
parseInt("19",10);//返回 19 (10+9)(按十进制解析)
parseInt("11",2);//返回 3 (2+1)(按二进制解析)
parseInt("17",8);//返回 15 (8+7)(按八进制解析)
parseInt("1f",16);//返回 31 (16+15)(按十六进制解析)
//parseFloat() 可解析一个字符串,一直解析到末尾,
//或者遇到一个无效的浮点数字为止。
//它始终都会忽略前导的零,只解析十进制。
parseFloat("12345red");//返回12345
parseFloat("0XA");//返回0
parseFloat("22.5");//返回22.5
parseFloat("22.34.5");//返回22.34
parseFloat("0908.5");//返回908.5
//toString() 可把一个逻辑值转换为字符串。
//把一个布尔值转换成字符串
var boo = new Boolean(true)
document.write(boo.toString()) //输出true
//可以传一个参数
var num=10;
alert(num.tostring()); //"10"
alert(num.tostring(2)); //"1010"
alert(num.tostring(8)); //"12"
alert(num.tostring(10)); //"10"
alert(num.tostring(16)); //"a"
//String() 把对象的值转换为字符串。
var test1= new Boolean(1);
var test2= new Boolean(0);
var test3= new Boolean(true);
var test4= new Boolean(false);
var test5= new Date();
var test6= new String("999 888");
var test7=12345;
document.write(String(test1)+ "
");//true
document.write(String(test2)+ "
");//false
document.write(String(test3)+ "
");//true
document.write(String(test4)+ "
");//false
document.write(String(test5)+ "
");//Wed Oct 28 00:17:40 UTC+0800 2009
document.write(String(test6)+ "
");//999 888
document.write(String(test7)+ "
");//12345
var a = 100; console.log(typeof a); //输出 number
var a = 'hello'; console.log(typeof a); //输出 string
var a = true; console.log(typeof a); //输出 boolean
var a = undefined; console.log(typeof a); //输出 undefined
var a = null; console.log(typeof a); //输出 object
var a = new Object(); console.log(typeof a); //输出 object
var a = Object; console.log(typeof a) //输出 function
var a = {};
alert(a instanceof Object); //true
var b = [];
alert(b instanceof Array); //true
var b = '123';
alert(b instanceof String); //false
var c = new String("123");
alert(c instanceof String); //true
数组类型属于哪种类型?
var a=[];
alert(typeof a) //Object
w3c:JavaScript数据类型
脚本之家:js判断各种数据类型的方法
阮一峰:Javascript标准参考
感谢大家观看
BY : 钟楚炯 鸣谢 : 郭健锋|陈中彬