JavaScript基本概念(变量 数据类型)
2017-08-20 12:31
756 查看
typeof Number() parseInt() toString()
4000
的松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于包村值的占位符而已。
格式:
初始化
注意
用var 操作符定义的变量将成为该变量作用域中的局部变量,也就是说,如果在函数中用var定义一个变量,那么该变量就是在这个函数作用域里面的局部变量,一旦这个变量在函数退出就会被撤销。
1种复杂数据类型:Object,本质是由一组无序名值对组成
typeof操作符
由于ECMAScript是松散类型,因此需要一种手段来检测给定变量的数值类型。对于一个值使用typeof操作符可能返回下列的字符串
“undefined”–如果这个值未定义
“bollean”–如果这个值是布尔型
“string”–如果这个值是字符串
“number”–如果这个值是数值
“object”–如果这个值是对象或null
“function”–如果这个值是函数
Undefined类型
取值:只有一个即特殊的underfined,
Null类型
取值:只有一个即特殊的null
从逻辑上来看,null值表示的是一个空对象指针,而这也是为什么使用typeof操作符检测null值时会返回”object”的原因。
Boolean类型
取值: true和false(区分大小写,True和False都不是Boolean值)
注意: 这两个值和数字值不是一回事,因此true不一定等于1,false也不一定等于0
可以对任何数据类型调用Boolean()函数,而且总会返回一个Boolean值
Number类型
(1) 用于表示整数和浮点数值
浮点数的最高精度是17位小数,但算术计算时精度远不如整数,例如0.1+0.2的结果不是0.3,而是0.30000000000000004,所以永远不要做一下这样的测试:
(2)NaN
即Not a Number,它是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作符未返回数值的情况
(在ECMAScript中,任何数值除以非数值会返回NaN)
它有两个特点:
1.任何涉及NaN的操作(例如NaN/10)都会返回NaN;
2.NaN与任何值都不相等
针对NaN的两个特点,ECMAScript定义了isNaN()函数。收到一个值之后会尝试将它转换为数值,某些不是数值的会直接转换为数值。
(3)数值转换
有3个函数:Number()、parseInt()和parseFloat()
Number()可以用于任何数据类型,而parseInt()和parseFloat()专门用于把字符串转换成数值。
String类型
即字符串,可以由双引号或单引号表示,因此下面这两种都是有效的
(1)字符串的特点
不可变。也就是一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用包含新值的字符串填充该变量。
(2)转换为字符串
第一种是几乎每个值都有的toString()方法。但是null和undefined没有这个方法。
不知道转换的值是否不是null和undefined的时候,可以使用转型函数String(),能将任何类型转换为字符串
如果值是null返回”null”
如果值是undefined返回”undefined”
其它和toString一样。
object类型
对象其实是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型名称来创建。
在ECMAScript中,Object类型是所有它的实例的基础。换句话说,Object类型所具有的任何属性和方法同样存在于更具体的对象中。
1.变量
ECMAScript中的变量是松散类型的,所谓4000
的松散类型就是可以用来保存任何类型的数据。换句话说,每个变量仅仅是一个用于包村值的占位符而已。
格式:
var result; //result可以用来保存任何类型的值比如字符串、数字等。 //像这样没有初始化的会保存一个特殊的值--undefined
初始化
var result=20; //变量result中保存一个数值20,但是!!!像这样初始化变量并不会把它标记为数字类型,如下: resul="true"; //我们又可以用保存一个字符串而取代原来的数字。虽有效但不推荐
注意
用var 操作符定义的变量将成为该变量作用域中的局部变量,也就是说,如果在函数中用var定义一个变量,那么该变量就是在这个函数作用域里面的局部变量,一旦这个变量在函数退出就会被撤销。
function test(){ var result =20; } test(); alert(result);//错误!!! //result是局部变量,函数被调用时创建该变量并赋值,但之后它就被撤销,在下一行代码中调用这个已经不存在的变量就会出错。
function test(){ result =20; } test(); alert(result);//20 //省略var操作符,那么result就是全局变量,这样函数被调用之后,变量就有了定义,也就可以在函数外部访问这个存在的变量了
2.数据类型
5种简单(基本)数据类型:Undefined、Null、Boolean、Number和String1种复杂数据类型:Object,本质是由一组无序名值对组成
typeof操作符
由于ECMAScript是松散类型,因此需要一种手段来检测给定变量的数值类型。对于一个值使用typeof操作符可能返回下列的字符串
“undefined”–如果这个值未定义
“bollean”–如果这个值是布尔型
“string”–如果这个值是字符串
“number”–如果这个值是数值
“object”–如果这个值是对象或null
“function”–如果这个值是函数
var message="hello"; alert(typeof message);//string,它是操作符不是函数,括号不是必需的 alert(typeof (message);//string alert(typeof 95);
Undefined类型
取值:只有一个即特殊的underfined,
var message; alert(message==undefined);//true //使用var声明变量但未初始化时它的值就是underfined
var message; //下面这个变量没有声明 //var name; alert(message==undefined);//true,使用var声明变量但未初始化时它的值就是underfined alert(name);//没有声明出错 alert(typeof message);//undefined alert(typeof name);//undefined,没有声明但可以typeof检测其数据类型
Null类型
取值:只有一个即特殊的null
从逻辑上来看,null值表示的是一个空对象指针,而这也是为什么使用typeof操作符检测null值时会返回”object”的原因。
var person=null; alert(typeof person);//"object" //如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。 //这样以来只要检查null值就知道相应的变量是否已经保存了一个对象的引用,如下: if(car!=null){ //若car已经保存了一个对象名字 //就对car对象执行某些操作 }
Boolean类型
取值: true和false(区分大小写,True和False都不是Boolean值)
注意: 这两个值和数字值不是一回事,因此true不一定等于1,false也不一定等于0
可以对任何数据类型调用Boolean()函数,而且总会返回一个Boolean值
var message="hello world"; if(message){ alert("value is true"); } //message会自动转换成Boolean值(true),所以会显示一个警告框
Number类型
(1) 用于表示整数和浮点数值
//除了可以表示十进制,整数还可以通过八进制和十六进制表示 var num1=10; var num2=070;//十进制的56 var num3=089;//无效的八进制,被解析为89 var num4=0xa//十进制的10 var num5=1.2; //由于浮点数值内存空间是整数两倍,下面这些浮点数会自动转换为整数 var num6=10.0;//解析为整数10 var num7=1.;//解析为整数1 //科学计数法 var num8=3.125e7;//等于31250000
浮点数的最高精度是17位小数,但算术计算时精度远不如整数,例如0.1+0.2的结果不是0.3,而是0.30000000000000004,所以永远不要做一下这样的测试:
if(a+b==0.3){ alert("result=0.3");//如果时0.05和0.25那没什么问题,但如果是0.1和0.2,那么测试不通过 }
(2)NaN
即Not a Number,它是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作符未返回数值的情况
(在ECMAScript中,任何数值除以非数值会返回NaN)
它有两个特点:
1.任何涉及NaN的操作(例如NaN/10)都会返回NaN;
2.NaN与任何值都不相等
针对NaN的两个特点,ECMAScript定义了isNaN()函数。收到一个值之后会尝试将它转换为数值,某些不是数值的会直接转换为数值。
alert (isNaN(NaN));//true alert (isNaN(10));//false alert (isNaN("blue"));//true
(3)数值转换
有3个函数:Number()、parseInt()和parseFloat()
Number()可以用于任何数据类型,而parseInt()和parseFloat()专门用于把字符串转换成数值。
var num1=Number("hello");//NaN var num2=Number("011");//11 var num3=Number(" ");//0 var num4=Number(true);//1 Var num5=Number(null);//0 var num6=Number(undefined);//NaN
//由于Number()在转换字符串的时候比较复杂且不是很合理,一次字符串转换一般用 var num1=parseInt("1234blue");//1234 var num2=praseInt(" ");//NaN var num3=parseInt("0xA");//十进制10 var num4=parseInt(22.5);//22 //为了消除解析八进制时的分歧,可以给它指定第二个参数:转换时的基数 var num1=parseInt("0xAF", 16);//175 var num2=pareseInt("AF");//NaN var num3=parseInt("10", 2);//2 按二进制解析 var num4=parseInt("10", 8);//8 按八进制解析
//praseFloat()会忽略前导0,只解析十进制 var num1=praseFloat("0xA");//0 var num2=praseFloat("0908");//908 var num3=praseFloat(1234A");//1234
String类型
即字符串,可以由双引号或单引号表示,因此下面这两种都是有效的
var firstName="Nicholas"; vaar lastNam='James';
(1)字符串的特点
不可变。也就是一旦创建,它们的值就不能改变。要改变某个变量保存的字符串,首先要销毁原来的字符串,然后再用包含新值的字符串填充该变量。
var one="java"; one=one+"script";
(2)转换为字符串
第一种是几乎每个值都有的toString()方法。但是null和undefined没有这个方法。
var age=11; var ageToString=age.toString();//字符串"11" var found=true; var founfToString=found.toString();//字符串"true" //调用数值的toString()式可以传递一个参数:输出数值的基数 var num=10; alert(num.toString());//10 alert(num.toString(2));//"0101"
不知道转换的值是否不是null和undefined的时候,可以使用转型函数String(),能将任何类型转换为字符串
如果值是null返回”null”
如果值是undefined返回”undefined”
其它和toString一样。
object类型
对象其实是一组数据和功能的集合。对象可以通过执行new操作符后跟要创建的对象类型名称来创建。
var o=new Object();
在ECMAScript中,Object类型是所有它的实例的基础。换句话说,Object类型所具有的任何属性和方法同样存在于更具体的对象中。
相关文章推荐
- JavaScript基本概念(变量和数据类型)
- JavaScript基本概念之变量与数据类型
- JavaScript高级程序设计之基本概念之数据类型第3.4讲笔记
- 学习笔记(二)JavaScript基本概念(语法,数据类型,控制语句,函数)
- 【JavaScript】(2)标识符与关键字\基本|引用数据类型 \变量 \运算符与表达式\流程控制语句
- java的基本概念:进制、单位、编码、数据类型、变量声明、ASCII码
- javascript注释,javascript的变量,javascript的基本数据类型,
- JavaScript基本概念(三)--- 数据类型
- 15-JavaScript-基本语法-变量-规则-数据类型
- 前端-javascript-基本数据类型以及变量
- JAVA基础初探(一)核心概念(JVM,JDK,JRE)、流程控制语句、基本数据类型、关键字、标识符、常量与变量、类型转换、Debug处理
- javaScript的注释、变量和基本数据类型
- Javascript基本概念之数据类型
- (3)javascript 基本概念--- -- 数据类型
- JavaScript 基本概念之数据类型
- 01-javaScript基本语法、数据类型、变量
- JavaScript基础——基本概念:数据类型及其转换
- javascript 基本概念(数据类型,小知识点)
- Java自学第二天、第三天Java的基本概念、变量、数据类型
- JavaScript-基本变量和数据类型