javascript基本数据类型

1 关键字和保留字,不能用作标识符
2 js中的变量,无论是定义什么样的数据类型,都同意使用   var
js中的变量可以定义在一行中,由于ECMAScript是松散类型的,所以不同类型的变量可以放在一行中定义
如:var message="hi",
            found="false",
            age=29;
3 数据类型:typeof操作符,用来检测变量的数据类型
 Undefined-------如果这个值未定义
 boolean---------如果这个值是布尔值
 string------------如果这个值是字符串
 number---------如果这个值是数字
 object----------如果这个值是对象或null
 function-------如果这个值是函数
例子:var message="some thing";
alert(typeof  message);
alert(typeof (message));
alert(typeof 89);
(1)Undefined类型:只有一个值,即特殊的undefined,在使用var声明变量但未对其进行初始化的时候,这个变量的值就是undefined
(2)Null类型:也是只有一个值得数据类型,值是null,从逻辑上讲,null值标示一个空指针对象,这正是用typeof检查null的值时返回的是“object”
(3)Boolean类型:只有两个值“true”、“false”
下面列出各种数据类型转换成boolean类型的转换规则
boolean:true、false
string:任何飞空字符串、“”(空字符串)
number:任何非零数字值(包括无穷大)、0和NaN
object:任何对象、null
undefined:n/a(不适用)、undefined
(3)Number类型:表示的是整数和浮点数
十进制数:var intNum=55
八进制数(56):var octalNum1=070
十六进制:前面两位必须是0x,后面跟任何十六进制数字(0~9及A~F)
var num1=0xA;//十六进制的10
var num2=0x1f;//十六进制的31
浮点数值:var float1=1.1       ;适用浮点数计算会产生舍入误差的问题,
NaN:非数值(Not a Number),定义了一个isNaN()函数,这个函数接受一个参数,这个参数可以是任何类型,
alert(isNaN(nan));//true
alert(isNaN(10));//false(10是一个数值)
alert(iNaN("10"));//false(可以被转换成数值10)
alert(isNaN(true));//false(可以被转换成数值1)
alert(isNaN("blue"));//true(不能被转换成数值型)

数值转化:有3个函数可以将不是数值型的转换成数值:
Number():转型函数,可以用于任何数据类型
parseInt()、parseFloat():这两个函数用于将字符串转换成数值型
Number()函数转换规则:
1);如果是Boolean值,true和false分别转换成1 和 0;
2);如果是数字,就简单的传入和返回
3);如果是undefned,返回0;
4); 如果是字符串,将按照下面的规则进行转换:
5):如果是对象,则调用对象的valueOf()方法,然后依照前面的规则转换返回的值,如果转换的结果是NaN,则调用对象的toString()方法,
例子:var num1=Number("hello");//NaN;因为不包含任何有意义的数字
          var num2=Number("");//0,空字符串会被转换成0
          var num3=Numner("000011");//11;忽略了其前导的0
          var num4=Numner(true);//1,true值被转换成1
parseInt()例子:
             var num1=parseInt("123blue");//123
             var num2=parseInt("");//NaN
             var num3=parseInt("0xA");//10(16进制)
             var num4=parseInt("22.5");//22
             var num5=parseInt("070");//56八进制,在ECMAScript中不具备解析8进制的能力,,因此前面的0会被视为无效,从而将这个值当成“70”,
             var num6=parseInt("70");//70十进制
为了消除parseInt()中的困惑,可以为这个函数提供第二个参数:转换时使用的基数(即多少进制)
例如:var num=parseInt("AF",16);//转换成十六进制
parseFloat():只解析10进制的数
toString();转换为字符串,null和undefined没有toString()方法。
var age=11;//11
var ageAsString=age.toString();//结果是字符串“11”
var found=true;
var foundAsString=found.toString();//结果是字符串“true”
给toString()方法传递参数
var num=10; 
alert(num.toString());//10
alert(num.toString(2));//1010

String()函数:可以将任何类型的值转换成字符串,遵循的转换规则如下:
1):如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果
2):如果值是null,则返回"null"
3):如果是undefined ,则返回的“undefined”

(5)Object类型:
var o=new Object();
object的每个实例都具有下列属性和方法
1)cnstructor:保存着用于创建当前对象的函数
2)hasOwnProperty(prooertyName):用于检查给定属性在当前实例对象中是否存在
3)isPropertyOf(Object):用于检查传入的对象是否是传入对象的原型
4)propertyIsEnumerble(propertyName):用于检测给定的属性是否能够用for-in语句来枚举
5)toLocaleString();返回对象的字符串标示,
6)toString():返回对象的字符串标示
7)valueOf():返回对象的字符串、数值或布尔值标示,通常与toString()方法的返回值相同

操作符:
一元操作符
++age:先加1,后执行
age++;先执行,后加1
--age;先减1,后执行
age--;先执行,后减1
例如:var num1=2;
          var num2=20;
          var num3=--num1+num2;//21
          var num4=num-+num2;//21

          var num1=2;
          var num2=20;
          var num3=num1--+num2;//22
          var num4=num1+num2;//21

按位非(NOT  "~"):结果就是数值的反码
按位与(AND  "&"),相同值为1,不同值为0;
按位或(OR "|")两个操作数,其中一个为真,结果就为真。
按位异或(XOR  "^"),两个操作数,相同为0.不同为1
左移(<<):左移不会影响操作数的符号位,即将-2向左移动位,结果是-64.
有符号右移(>>):会将数值向右移动,但保留符号位
无符号右移(>>>):对于正数来说,无符号右移与有符号右移结果是相同的,但是负数就不同了,无符号右移操作符会把负数的二进制码当成正数的二进制码,而且负数以其绝对值的二进制补码形式标示,因此会导致无符号右移后的结果非常大

布尔操作符:
逻辑非(!)
逻辑与(&&):两个操作数都为真的时候结果才为真
逻辑或(||):两个操作数中有一个为真时结果才为真;可以利用逻辑的这一行为来避免为变量赋值为null或undefined
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值