zoukankan      html  css  js  c++  java
  • JavaScript笔记(6)

    一、Date

    Date实例用来处理日期和时间。Date对象基于1970年1月1日(格林威治时间)世界标准时间起经过的毫秒数。
    常用:

    new Date();
    new Date(value);
    new Date(dateString);
    new Date(year, month[, day[, hour[, minutes[, seconds[, milliseconds]]]]]); (注意月份是从0开始的)

    参数:
        如果没有输入任何参数,则Date的构造器会依据系统设置的当前时间来创建一个Date对象。

        value:代表自1970年1月1日00:00:00 (世界标准时间) 起经过的毫秒数。

        dateString:表示日期的字符串值。(忽略)

        year:代表年份的整数值。为了避免2000年问题最好指定4位数的年份; 使用 1998, 而不要用 98.

        month:代表月份的整数值从0(1月)到11(12月)。

        day:代表一个月中的第几天的整数值,从1开始。

        hour:代表一天中的小时数的整数值 (24小时制)。

        minute:分钟数。

        second:秒数。

        millisecond:表示时间的毫秒部分的整数值

    二、Math

    Math 是一个内置对象, 它具有数学常数和函数的属性和方法。但Math不是一个函数对象。
    与其他全局对象不同的是,Math不是一个构造器。
    Math的所有属性和方法都是静态的
    Math.abs(x):  返回x的绝对值.
    Math.ceil(x): 返回x向上取整后的值.
    Math.floor(x): 返回小于x的最大整数。
    Math.round(x): 返回四舍五入后的整数.
    Math.sqrt(x): 返回x的平方根.
    Math.pow(x,y): 返回x的y次幂.
    Math.max([x[,y[,…]]]): 返回0个到多个数值中最大值.
    Math.min([x[,y[,…]]]):
    返回0个到多个数值中最小值.

    Math.random(): 返回0到1之间的伪随机数.
    Math.cos(x): 返回x的余弦值.
    Math.sin(x): 返回正弦值.
    Math.tan(x): 返回x的正切值.

      角度转弧度:
            角度*PI/180
      弧度转角度:   
            弧度*180/PI

    三、Global

    Global (全局)对象可以说是 ECMAScript 中最特别的一个对象了,因为不管你从什么角度上看,这个对象都是不存在的.

    换句话说,不属于任何其他对象的属性和方法,最终都是它的属性和方法。

      https://developer.mozilla.org/zh-CN/docs/Web/JavaScript


    属性:

       Object Function Array Date Math     Infinity NaN   null undefined

       Boolean Number String

       Error      RegExp 

       JSON     (es5)   

       Generator     Promise Map Set  Symbol            (es6)              

      方法:

       eval() (出于安全性考虑,不用)    isNaN()  parseFloat(不用)       

      parseInt将字符串两边的空格去掉,然后观察这个字符串是否以数字开头,如果以数字开头就转换成数字,否则就是NaN

    四、包装类

    (隐式)组包:将基本数据类型  转换成 引用数据类型
    (隐式)拆包:将引用数据类型 转换成 基本数据类型

       显式)组包 : new Number(1)
      (显式)拆包: test.valueof()

       

       不同类型对象的valueOf()方法的返回值
        对象                                  返回值
        Boolean                              布尔值。
        Number                               数字值。
        String                               字符串值。

        Array                                返回数组对象本身。

        Date                                 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。
        Function                             函数本身。
        Object                               对象本身。这是默认情况。

        Math 和 Error 对象没有 valueOf 方法

    1、String

      (1)获取字符串的长度:str.length

      (2)获取字符串指定位置上的字符单元:

           ①:str.charAt(index)

              作用:从一个字符串中返回指定的字符

              语法:str.charAt(index)

              参数:index    一个介于0和字符串长度减1之间的整数。(0~length-1)

              返回值:指定的字符

              注意点:如果没有提供索引,charAt()将使用0

                     如果超过字符串长度减1,charAt()将返回空白字符串

           ②:[index]

               []的形式也可以用来访问字符串中的指定字符,但这种方式是在ES5中定义的,部分浏览器会有兼容性问题。

      (3)获取字符串在原字符串中的下标位置

            ①:str.indexOf

               作用:在fromIndex位置开始搜索str中第一次出现searchValue的位置

               语法:str.indexOf(searchValue[, fromIndex])

               参数

                          searchValue:一个字符串表示被查找的值

                     fromIndex 可选:开始查找的位置。可以是任意整数。默认值为 0。

               返回值:指定值的第一次出现的索引; 如果没有找到 -1。

               注意点

                           如果 fromIndex < 0 则查找整个字符串(如同传进了 0)。

                                 被查找的字符串是一个空字符串,此时返回 0

                           如果 fromIndex >= str.length,则该方法返回 -1,

                                 被查找的字符串是一个空字符串,此时返回 str.length

            ②:str.lastindexOf

                作用:在fromIndex位置开始搜索str中最后一次出现searchValue的位置

                同上

       (4)字符串截取

             ①:str.slice(beginSlice[, endSlice])

                作用:提取一个字符串的一部分,并返回一新的字符串

                语法:str.slice(beginSlice[, endSlice])

                参数

                     beginSlice:

                     从该索引(以0为基数)处开始提取原字符串中的字符。

                     endSlice:

                     可选。在该索引(以 0 为基数)处结束提取字符串。如果省略该参数,slice会一直提取到字符串末尾。

                 返回值: 返回一个从原字符串中提取出来的新字符串

                 注意:

                      如果beginSlice为负数,会被当做 sourceLength + beginSlice 看待,这里的sourceLength 是字符串的长度 。如果加完还是负数则看为0。endSlice同理

                      如果beginSlice >= endSlice,提出的是空白字符串

                      slice方法提取的范围是左闭右开的

                 

                 ②:str.substring(indexStart[, indexEnd])

                  与slice及其类似。但是需要注意的是

                       如果 indexStart 等于 indexEnd,substring 返回一个空字符串。

                       如果 indexStart 大于 indexEnd,则 substring 的执行效果就像两个参数调换了一样

                       如果任一参数小于 0 或为 NaN,则被当作 0。

                       如果任一参数大于 stringName.length,则被当作 stringName.length。

              ③:str.substr(start[, length])

                 作用:返回一个字符串中从指定位置开始到指定字符数的字符

                 语法:str.substr(start[, length])

                 参数:

                      start:开始提取字符的位置。

                      length:可选。提取的字符数

                 返回值: 返回一个从原字符串中提取出来的新字符串

                 注意

                     如果start为负值,则被看作 strLength + start,其中 strLength 为字符串的长度。如果加完还是负数则看为0

                     如果 start 为正值,且大于或等于字符串的长度,则 substr 返回一个空字符串

                     如果 length 为 0 或负值,则 substr 返回一个空字符串 

        (5)字符串拼接

                str.concat(string2, string3[, ..., stringN])

              作用: 将一个或多个字符串与原字符串连接合并,形成一个新的字符串并返回

              语法:str.concat(string2, string3[, ..., stringN])

              参数:string2...stringN

                   和原字符串连接的多个字符串

              返回值: 合并的新字符串

        (6)大小写转化方法

                str.toUpperCase()

                str.toLowerCase()

              返回值: 一个新的字符串,表示串转换为大/小写的调用字符

        (7)首位去空格

            作用:

                 trim() 方法会从一个字符串的两端删除空白字符。在这个上下文中的空白字符是所有的空白字符 (space, tab, no-break space 等)

            语法:str.trim()

    2.Number

            Number对象是一个数值的对象包装器

    3.Boolean

            Boolean对象是一个布尔值的对象包装器

    五、Error

      通过Error的构造器可以创建一个错误对象。当运行时错误产生时,Error的实例对象会被抛出

    六、强制类型转换

    1.toString:

    (先调用toString方法,在调用valueof方法)

        基本类型值的字符串化规则为:
                 null 转换为 "null"
                 undefined 转换为 "undefined"
                 true 转换为 "true" ; false转换为"false"
                 数字的字符串化则遵循通用规则
                     1 转换为 "1" (当然可能会有指数的形式 1.07e21)


        引用数据类型 ---> 字符串
                 先调用引用数据类型 toString方法 观察方法是否返回了基本数据类型
                    如果是基本数据类型 ---> 使用 基本类型值的字符串化规则
                    如果不是基本数据类型 ---> 调用valueof方法
                 后调用valueof方法
                    如果是基本数据类型 ---> 使用 基本类型值的字符串化规则
                    如果不是基本数据类型 ---> 报错

    
    

       不同类型对象的valueOf()方法的返回值
         对象                                  返回值
         Boolean                              布尔值。
         Number                               数字值。
         String                               字符串值。

    
    

         Array                                返回数组对象本身。

    
    

         Date                                 存储的时间是从 1970 年 1 月 1 日午夜开始计的毫秒数 UTC。
         Function                             函数本身。
         Object                               对象本身。这是默认情况。

    
    

           Math 和 Error 对象没有 valueOf 方法

    2.toNumber:

    调用valueof方法,再调用toString方法)

          它负责处理非数字 转化为 数字。

          基本类型值的数字化规则为:

                   Null==>0 ; undefined==>NaN

                   Boolean:true==>1 false==>0

                   字符串:

                         就是把字符串两边的空白字符去掉,然后把两边的引号去掉,

                         看它能否组成一个合法的数字。

                         如果是,转化结果就是这个数字;否则,结果是NaN。

                         当然也有例外,比如空白字符串转化为数字的结果是0。

           引用数据类型ToPrimitive(valueof - tostring)

     

    3.toBoolen


    假值 --->false

         真值 ---> true

    
    

         以下这些是假值:
                 undefined
                 null
                 false
                 +0 、 -0 和 NaN
                 ""

    
    

         真值就是假值列表之外的值。

    4.ToPrimitive

         检查该值是否有 valueOf() 方法。如果有并且返回基本类型值,就使用该值进行强制类型转换。

        如果没有就使用 toString() 的返回值(如果存在)来进行强制类型转换。

        如果 valueOf() 和 toString() 均不返回基本类型值,会产生 TypeError 错误

    总结:

    在js中只存在强制类型转换
    强制类型转换分为:
    显示强制类型转换:
                              toSring 将String函数 普通调用
    toNumber 将Number函数 普通调用
                  隐式强制类型转换:
                                       正号+()
    toBoolen
    ==操作


    +

         字符串拼接
        算术运算
        正号

       如果某个操作数是字符串 + 将进行拼接操作
       遇到对象 则ToPrimitive()

    toBoolean

    (1) if (..) 语句中的条件判断表达式。
    (2) for ( .. ; .. ; .. ) 语句中的条件判断表达式(第二个)。
    (3) while (..) 和 do..while(..) 循环中的条件判断表达式。
    (4) ? : 中的条件判断表达式。
    (5) 逻辑运算符 || (逻辑或)和 && (逻辑与)左边的操作数(作为条件判断表达式)

        a || b;
        大致相当于 (roughly equivalent to):
        a ? a : b;

        a && b;
        大致相当于 (roughly equivalent to):
        a ? b : a;                          返回值:表达式的结果

                                                   不一定是布尔值

    ==操作符

      有和有 统一往数字转
      无和无永远是true
      有和无永远是fasle
      NaN 不等 NaN

        Array.prototype.valueOf=function () {
        return true
        }
        console.log([1,2,3] == "1");

    输出结果为 true

      

  • 相关阅读:
    python中删除某个元素的3种方法
    研发团队开源管理工具最佳实践
    Cocos2dx游戏开发系列笔记13:一个横版拳击游戏Demo完结篇
    Sunny谈软件架构
    整理部分JS 控件 WEB前端常用的做成Jsp项目,方便今后直接用
    hdu3033I love sneakers! (分组背包,错了很多次)
    Using关键字的用法
    Android webViewj简单处理apk的下载链接
    山寨腾讯“爱消除”游戏之菜单特效
    Apache与Nginx优缺点比较
  • 原文地址:https://www.cnblogs.com/fxiong/p/10133751.html
Copyright © 2011-2022 走看看