JavaScript学习--2. 数据类型(1)

一、 数字
    Javascript不区分整数值与浮点值, 在javascript中所有数字均用浮点数值表示。
    当一个数字直接出现在Javascript程序中, 我们称为数字直接量
    
    Math对象
         提供复杂运算
    Math.pow(2,53)  幂
    Math.round(.6)  四舍五入
    Math.ceil(.6)     向上取整
    Math.floor(.6)   向下求整
    Math.abs(-5) 绝对值
    Math.max(x,y,z) 最大值
    Math.min(x,y,z) 最小值
    Math.random() 生成一个大于等于0小于1.0的伪随机数
    Math.PI     圆周率

    JavaScript中的算术运算在溢出, 下溢或被零整除时不会报错。 
    当数字运算结果超过了JavaScript所能表示的数字上限(溢出), 结果为一个特殊的无穷大(infinity)值。 在JavaScript中以Infinity表示。
    当负数的值超过了JavaScript所能表示的负数范围。 结果为负无穷大。 -Infinity表示
    下溢是当运算结果无限接近于零并比JavaScript能表示的最小值还小的时候发生的一种情形,这种情况下返回0, 当一个负数发生下溢时, 返回-0.
    
    被零整除, 返回Infinity 或 -Infinity
    零除以零  返回NaN
    Infinity   NaN  为全局变量

    NaN 它和任何值都不相等。 isNaN() 判断一个值是否为NaN
    
    isFinite() 在参数不是NaN, Infinity, -Infinity的时候返回true

    正零与负零相等, 但作为除数,例外
         var zero = 0;
         var negz = -0;
         zero === negz;   //true
         1/zero === 1/negz;  //false   Infinity !== -Infinity

    
二、 日期与时间
    JavaScript语言核心包括Date()构造函数, 用来创建表示日期和时间的对象。
    var then = new Date(2011,0,1);     //2011年1月1日 
    var later = new Date(2011,0,1,17,10,30); //同一天, 当地时间5:10:30pm,
    var now = new Date(); //当前日期和时间
    var elapsed = now - then; //日期减法, 计算时间间隔的毫秒数
    later.getFullYear();      // => 2011
    later.getMonth();          // => 0; 从0开始计数的月份
    later.getDate();           // => 1; 从1开始计数的天数
    later.getDay();             // => 5; 得到星期几, 0代表是星期日, 5代表是星期一
    later.getHours();             // => 当地时间 17:5pm
    later.getUTCHours(); //使用UTC表示小时的时间,基于时区

三、 文本
    字符串直接量, 是由单引号或双引号括起来的字符序列
    字符串直接量可以拆分成数行, 每行必须以反斜线(\)结束。
         "two \
              lines"
    \n  表示一个转义字符
    + 符号   用于数字,表示两数相加。 字符串, 表示字符串连接。将第二个字符串拼接在第一个之后。
    
    msg = "Hello, " + "world"; //生成字符串 "Hello, world"
    
     要确定一个字符串的长度(其所包含的16位值的个数)可以使用字符串的length属性。 msg.length

    字符串方法:
         var s = "hello, world"     //定义一个字符串
         s.charAt(0);                  //=> "h" 第一个字符
         s.charAt(s.length-1);       //=> "d" 最后一个字符
         s.substring(1,4);           //=> "ell" 第2~4个字符
         s.slice(1,4);                //=> "ell" 同上
         s.slice(-3);                  //=> "rld" 最后三个字符
         s.indexOf("l")               //=> 2; 字符l首次出现的位置
         s.lastIndexOf("l");         //=> 10; 字符l最后一次出现的位置
         s.indexOf("l",3);          //=> 3 在位置3及之后首次出现字符l的位置
         s.split(", ");               //=> ["hello", "world"]分割成子串
         s.replace("h", "H");          //=> "Hello, world" 全文字符替换 
         s.toUpperCase()  //=> "HELLO, WORLD"

   在JavaScript中字符串是固定不变的。 类似replace(), toUpperCase()的方法都返回新字符串, 原字符串本身并没有发生改变

 四、 模式匹配
    JavaScript定义了RegExp()构造函数.正则表达式
    
    /^HTML/          //匹配以HTML开始的字符串
    /[1-9][0-9]*/     //匹配一个非零数字, 后面是任意个数字
    /\bjavascript\b/i  //匹配单词"javascript", 忽略大小写
    
    var text = "testing: 1, 2, 3";     //文本示例
    var pattern = /\d+/g;   //匹配所有包含一个或多个数字的示例
    pattern.test(text); //=> true; 匹配成功
    text.search(pattern)     //=>9  首次匹配成功的位置
    text.match(pattern) //=>["1","2","3"];  所有匹配组成的数组
    text.replace(pattern, "#"); //=>"testing: #, #, #"
    text.split(/\D+/); //=>["","1","2","3"];用非数字字符截取字符串

五、 布尔值
    下面这些值会被转换成false
    undefined,  null, 0, -0, NaN, ""//空字符串

    && 与
    || 或
    !  非

    null    typeof  null  //=> object
    undefined 表示变量没有初始化
    type undefined  /=> undefined
    null == undefined  //=> true

六、 全局对象
    全局属性:   undefined, Infinity, NaN
    全局函数:  isNaN(), parseInt(), eval()
    构造函数:  Date(), RegExp(), String(), Object(), Array()
    全局对象:  Math, JSON

    在代码的最顶级(不在任何函数内的JavaScript代码)可以使用JavaScript关键字this来引用全局对象
    var global = this; //定义一个引用全局对象的全局变量
    
   如:  global.Math.pow()
   
    在浏览器窗口中的所有JavaScript代码中。 Window对象充当了全局对象。这个全局Window对象有一个属性window引用其自身, 它可以代替this来引用全局对象。

 七、 包装对象
    String(), Number(), Boolean()
    存取字符串, 数字或布尔值的属性时创建的临时对象称做包装对象
    可通过String(), Number(), Boolean()构造对象显式创建包装对象
    var s = "test", n=1, b=true //一个字符串,数字和布尔值
    var S = new String(s);     //一个字符串对象
    var N = new Number(n);     //一个数值对象
    var B = new Boolean(b);    //一个布尔值

    JavaScript会在必要时将包装对象转换成原始值, 因此上段代码中的对象S, N 和 B常常(但不总是)表现的和值s, n和b 一样。 
    “==” 等于运算符将原始值和其包装对象视为相等。
    “===” 全等运算符将它们视为不等
    typeof运算符可以看到原始值和其包装对象的不同


    

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值