javascript基本数据类型

来源:互联网 发布:人工智能 被黑客攻击 编辑:程序博客网 时间:2024/06/07 02:14

ECMAScript 中有5 种简单数据类型(也称为基本数据类型):Undefined、Null、Boolean、Number和String。

Undefined

  • 使用var声明变量但未初始化
  • 区分空对象指针与尚未定义的变量
  • 对未初始化的变量及未声明的变量使用typeof运算符均会返回undefined
    var message;    //var a;    console.log(message); //undefined    console.log(typeof(message)); //undefined    console.log(a); //null    console.log(typeof(a)); //undefined

注:message是被系统自动赋值为undefined;a是未定义,所以检测类型也为undefined,值为null;undefined派生自null

null

  • 逻辑上null表示一个空对象的指针
  • 使用typeof检测时会返回object
var a = null;console.log(typeof(a));//object

Boolean

  • true为真,false为假
  • true不一定等于1,false不一定等于0
  • 使用Boolean()进行转换
    • 转换为true
      1. 任何非空字符串
      2. 任何非零数值
      3. 任何非空对象
    • 转换为false
      1. 空字符串
      2. 0及NaN
      3. null及undefine
 var message = "Hello world!";if (message){alert("Value is true");}//字符串message 被自动转换成了对应的Boolean 值true

string

特性

  1. 由0个或多个16位的Unicode字符组成
  2. 单引号与双引号不能交叉使用
  3. 使用.length属性访问字符串长度
    • 转义序列表示一个字符
    • 无法精确返回双字节字符长度
  4. 字符串一旦被创建,其值将不能改变,若要改变必须销毁原有字符串
var lang = "Java";lang = lang + "Script"; //创建新字符串并销毁原来字符串

转义序列

  • \n(换行)
  • \t(制表符)
  • \b(空格)
  • \r(回车符)
  • \f(分页符)
  • \(斜杠\)
  • \’(单引号)
  • \”(双引号)
  • \xnn(十六进制数,n代表0~F)
  • \unnnn(以十六进制代码表示一个Unicode字符)

类型转换

  1. toSting()
    • 使用类型:number、boolean、string、object
    • 参数:number类型的数值基数
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"
  1. String()
    • null
    • undefined
var value1 = 10;var value2 = true;var value3 = null;var value4;alert(String(value1)); // "10"alert(String(value2)); // "true"alert(String(value3)); // "null"alert(String(value4)); // "undefined"
  1. eval()
    计算字符串表达式的值并以数值的形式返回
console.log(eval("alert('hi')")==alert("hi"));//true

number

  • 进制
    • 十进制
    • 八进制:前导(0);范围(0~7);超出(前导位0被忽略、后续数值一十进制计数)
    • 十六进制:前导(0x);范围(0~9、A~F)
  • 浮点数
    • 小数点后至少一位数字
    • 科学计数法
      1. 小数点后带有6个0的浮点数
      2. 以e为底*10的±N次幂
      3. 最高精度17位小数
      4. 缺陷:存在舍入误差;无法测试特定浮点数值
  • 数值范围
    • 最小值:Number.MIN_VALUE
    • 最大值:Number.MAX_VALUE
    • 超出范围
      1. 正无穷:Infinity;Number.POSITIVE_INFINITY
      2. 负无穷:-Infinity;Number.NEGATIVE_INFINITY
      3. 缺陷:无法参与下一次计算
      4. 检测方法:isFinite()-超出范围:false;合法范围:true
  • NaN
    • 含义
      1. Not a Number
      2. 非数值
    • 特性
      1. 任何涉及NaN的操作都将返回NaN
      2. NaN与任何数值都不相等包括其自身
console.log(NaN == NaN); //falseconsole.log(0/0);//NaNconsole.log(10/0);//Infinityconsole.log(-10/0);//-Infinity
  • 检测:isNaN()
    1. 可以转换为数值:false
    2. 不能转换为数值:true
alert(isNaN(NaN)); //truealert(isNaN(10)); //false(10 是一个数值)alert(isNaN("10")); //false(可以被转换成数值10)alert(isNaN("blue")); //true(不能转换成数值)alert(isNaN(true)); //false(可以被转换成数值1)
  • 数值转换
    1. Number()
      • Boolean
        a. true:1;
        b. false:0;
      • null :0
      • undefined:NaN
      • String
      • object
        a. valueOf();
        b. toString();
    2. parseInt();
      特性:
      • 忽略前置空格
      • 直接找到第一个非空格字符
        1. 不是数字字符或符号:NaN
        2. 数字字符:解析所有后续字符;遇到非数字字符结束
      • 小数点不是有效数字;
        参数:(要解析的字符串,转换时所使用的基数)
    3. parseFloat();
      • 从第一个字符开始解析
      • 遇到无效浮点格式后结束
      • 只有第一个小数点有效
      • 忽略前导0
      • 十六进制数始终为0
      • 没有小数点或小数点后全0:转换为整数;

object(非基本类型)

定义

一组数据或功能的集合

声明

    var o = new Object();

属性与方法

  • Constructor
    保存用于创建当前对象的函数
  • hasOwnProperty(propertyName)
    检测给定属性在当前对象实例中是否存在
  • isPrototypeOf(object)
    检测传入的对象是否另一个对象的原型
  • propertyIsEnumerable(propertyName)
    检测给定属性是否能用for-in语句枚举
  • toLocaleString()
    返回对象的字符串表示,该字符串与执行环境的地区对应
  • toString()
    返回对象的字符串表示
  • valueOf()
    返回对象的字符串、数值或布尔值表示;通常与toString()的值相同
    注:所有对象都具有上述基本的属性和方法。
0 0
原创粉丝点击