您的位置:首页 > Web前端 > JavaScript

JavaScript基本概念(变量 数据类型)

2017-08-20 12:31 756 查看
typeof Number() parseInt() toString()

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和String

1种复杂数据类型: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类型所具有的任何属性和方法同样存在于更具体的对象中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: