前端day06--JavaScript数据类型

一、变量

松散类型:可以用来保存任何类型的数据。定义变量时要使用var操作符。

var a = 10;
a = "message";//有效但不推荐

var定义的变量都是局部变量
省略var可以创建一个全局变量。但不推荐。

二、数据类型

操作符typeof用来检测数据类型。

  • undefined,如果这个值未定义
  • boolean,如果这值是布尔值
  • string,如果这个值是字符串
  • number,如果这个值是数值
  • object,如果这个值是对象或null
  • function,如果这个值是函数

Undefined

在使用var声明变量但没有对其初始化这个变量的值就是undefined。

var message;
alert(message == undefinded);//true
var messag = undefinded;
alert(message == undefinded);//true

但是未初始化的变量和未定义的变量是不一样的

var message;
//var age;
alert(age);//报错
alert(message);//"undefinded"

不过用typeof检测他们都是undefined

var message;
//var age;
alert(typeof age);//"undefinded"
alert(typeof message);//"undefinded"

Null

null值表示一个空对象指针,用typeof检测返回object。
实际上,undefined派生自null值。

alert(null == undefinded);//true

Boolean

该数据类型有两个字面值:true和false。注意:区分大小写,不是TRUE FALSE 而是true false

所有数据类型的值都有与这两个Boolean值等价的值

数据类型转换为true的值转换为false的值
Booleantruefalse
String任何非空字符串""(空字符串)
Number任何非零数字值0和NaN
Object任何对象null
Undefindednot applicableundefinded

Number

整数数值

var intNum = 55;

var octalNum1 = 070;//八进制的56
var octalNum2 = 079;//无效的八进制,被解析为79

var hexNum1 = 0xA;//十六进制的10
var hexNum2 = 0x1f;//十六进制的31

在JavaScript中,可以保存正零和负零。正零和负零被认为相等。

浮点数值

var floatNum1 = 1.1;
var floatNum2 = .1;//有效但不推荐

var floatNum3 = 1.;//小数点后面没有数字,解析为1
var floatNum4 = 10.0;//解析为整数10

var floatNum5 = 3.15e7;//35100000

在默认情况下,小数点后面有六个零以上的浮点数值会转换成以e为表示法表示的数值。(0.0000003 = 3e-7)
数值范围
最小数值:MIN_VALUE:5e-324
最大数值:MAX_VALUE:1.7976931348623157e+308
如果一个数超过了JavaScript数值范围会被转换成Infinity(+Infinity,-Infinity)

NaN

not a number
用于表示一个本来要返回熟知的操作数未返回数值的情况。
两个特点
1.任何涉及NaN的操作都会返回NaN。
2.NaN与任何值都不相等,包括他自己本身。

使用isNaN()函数来判断一个变量是否为NaN。

alert(isNaN(NaN));//true
alert(isNaN(10));//false(10是一个整数)
alert(isNaN("10"));//false(字符串10可以被转换为数值)
alert(isNaN("blue"));//true(不能被转化成数值)
alert(isNaN(true));//true(可以被转换为数值1)

数值转换

有三个数值转换的函数:
Number(),parseInt(),parseFloat()

Number()

转换规则:
Boolean值----返回1,0

数字值----简单的传入和返回

null值----返回0

undefinded----返回NaN

对象----调用valueOf()方法,依照前面的规则转换返回的值,若转换结果为NaN,则调用toStirng()方法,然后再次依照前面的规则转换返回的数值串值。

字符串----

  • 字符串中只包含了数字,转换成数字
  • 包含有效浮点格式,转换为浮点数值
  • 包含有效十六进制,转换为相同大小的十进制数值
  • 字符串为空,转换为0
  • 包含除上述格式之外的字符,转换为NaN
parseInt()

忽略字符串前面的空格,直至找到第一个非空格字符串。如果第一个字符串不是数字字符或者负号,parseInt()会返回NaN。
所以对空字符串,Number()返回0,parseInt()返回NaN。

var num1 = parseInt("1234blue");//1234
var num2 = parseInt("");//NaN
var num3 = parseInt("0xA");//10
var num4 = parseInt(22.5);//22
var num5 = parseInt("070");//56
var num6 = parseInt("70");//70
var num7 = parseInt("0xf");//15

在转换其他进制数时,可以在parseInt()中传入第二个参数。

var num1 = parseInt("0xAF",16);//175
var num2 = parseInt("AF",16);//175

传入第二个参数后,字符串前面不用带上0x,以上两句代码都可以正常执行。

parseFloat()

与parseInt()相同,区别:
1.第一个小数点有效
"22.34.5"转换为22.34
2.忽略前导的0
"0908.7"转换为908.7

String

用单引号和 ’ ’ 双引号 " " 都可以
1.字符字面量
\n----换行
\t----制表
\b----退格
\r----回车
\f----进制
\----斜杠
2.转换为字符串

var age = 11;
var ageAsString = age.toString();//字符串"11"
var found = true;
var foundAsString = found.toString();//字符串"true"

在调用数值的toString()方法时,可以传入代表进制的参数

var num = 10;
console.log(num.toString(8));//"12"

String()方法可以将任意类型的值转换为字符串

  • 如果值有toString()的方法,则调用该方法并返回相应结果
  • 如果值是null,返回"null"
  • 如果值是undefinded,返回"undefined"

Object

新建对象

var a = new Object();

Object每个实例都具有下列属性和方法

  • constructor:构造函数
  • hasOwnProperty(propertyName):用于检查给定的属性在当前对象实例中是否存在.参数必须以字符串的形式命名.
  • isPrototypeOf(object):检查当前传入的对象是否是当前对象的原型
  • propertyIsEnumerable(propertyName):用于检查给定的属性能否用for-in语句来枚举.
  • toString()
  • valueOf()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值