zoukankan      html  css  js  c++  java
  • 对象

    ## 对象
    **创建对象**
      只需要一对大括号即可。创建一个空的对象,可以给该对象添加相应的属性,属性与属性之间时以逗号隔开的,这里我们可以将属性名称之位键,属性对应的称之为值,对象是由一个一个键值对组成的。
    **访问对象属性**
      有3种方法:点访问法,中括号访问法,symbol访问法
      1·点访问法:
    示例:

    let xiejie = { 
        name : "xiejie",
        age : 18, 
        gender : "male", 
        score : 100 
    };
    console.log(xiejie.name);//xiejie 
    console.log(xiejie.age);//18 
    console.log(xiejie.gender);//male 
    console.log(xiejie.score);//100

    2·中括号访问法:
    示例:

    let xiejie = { 
      name : "xiejie", 
      age : 18, 
      gender : "male", 
      score : 100 
    }; 
    console.log(xiejie["name"]);//xiejie 
    console.log(xiejie["age"]);//18 
    console.log(xiejie["gender"]);//male 
    console.log(xiejie["score"]);//100

      当我们的属性名来自于变量时,用中括号访问法。
    3·symbol访问法:
      ES6新增的数据类型,解决同名属性名冲突的问题。
    **删除对象属性**
      对象的任何属性都可以通过delete运算符来从对象删除
    示例:

    let person = { 
      name : "xiejie", 
      age : 18, 
      walk : function(){ 
      console.log("I'm walking"); 
      } 
    } 
    console.log(person.age);//18
      delete person.age;//删除 age 这个属性
    console.log(person.age);//undefined 
      person.walk();//I'm walking 
      delete person.walk;// 删除walk 方法
      person.walk();// 报错
    //TypeError: person.walk is not a function

      如果删除的时属性,那么再次访问值变为undefined,而如果删除的时方法,那么调用时会直接报错。
    **对象常用属性和方法**
      1·in操作符:
        该操作符用于判断一个对象是否有某一个属性,如果有返回true,没有返回false。
      2·for...in
        数组中使用for in来取出数组的键。这里循环遍历一个对象的所有属性。
      3·keys(),values(),entries()
        分别用于找出可迭代对象的键,值,以及键和值
    **嵌套对象**
      一个对象里面可以包含其他的对象,访问嵌套对象里面的值的时候,和访问单个对象的方式一样。
    **对象的解构**
    示例:

    let a = {name:"xiejie",age:18}; l
     let b = {name:"song",age:20}; 
    let {name:aName,age:aAge} = a; 
    let {name:bName,age:bAge} = b; 
    console.log(aName);//xiejie 
    console.log(aAge);//18 
    console.log(bName);//song
    console.log(bAge);//20
    当属性名和变量名一致时,可以简写:
    示例:
    let a = {name:"xiejie",age:18}; 
    let {name,age} = a; 
    console.log(name);//xiejie
    console.log(age);//18

    **对象作为函数参数**
      对象字面量作为函数的参数进行传递,可以再调用函数时不用记住参数的顺序。
    **this关键字**
      代表的是当前的对象,
    **命名空间**
      相同的变量和函数名被共享再同一作用域的时候,就会发生命名冲突,解决命名冲突的方式,就是使用对象字面量来为一组相关函数创建一个命名空间,这样咋调用这些函数的时候需要写上对象名,这里的对象名就充当了命名空间的角色。
    ## 字符串相关方法
    **字符串属性**
      length属性:可以访问到该字符串里面有多少个字符
    **字符串方法**
      访问特定字符:
        charAt():接收一个数字参数,找到对应下标的字符是什么。
    示例:

    let str = "Hello World"; 
    console.log(str.charAt(1));//e 
    console.log(str.charAt('a'));//H 因为a被转为了数字0

      charCodeAt():接收一个数字参数,找到对应下标的字符编码是什么。
    示例:

    let str = "Hello World";
    console.log(str.charCodeAt(1));//101 
    console.log(str.charCodeAt('a'));//72

      from Char Code():这个方法基本上是和charCodeAt()执行相反的操作
    示例:

    console.log(String.fromCharCode(104,101,108,108,111));//hello

    **字符串操作方法**
      concat():用于将一个或者多个字符串拼接起来,返回拼接得到的新字符串,注意的是原字符串不会产生改变。,拼接后的字符串可以返回值的方式返回。

      slice():和数组的slice()方法相似,接收一或两个参数,截取字符串,

      substr():再字符串中抽取从开始下标开始的指定数目的字符,效果和slice()方法一样,但是区别在于第二个参数
    示例:

    let str = "Hello World";
    let str1 = str.slice(2); 
    let str2 = str.substr(2); 
    console.log(str1);//llo World 
    console.log(str2);//llo World
    str1 = str.slice(2,7);// 结束位置为7,不包含7
    str2 = str.substr(2,7);// 要返回的字符个数
    console.log(str2);//llo Wor

    substring():用于提取字符串中介于两个指定下标之间的字符。
    示例:

    let str = "Hello World"; 
    let str1 = str.slice(2);
    let str2 = str.substr(2);
    let str3 = str.substring(2);
    console.log(str1);//llo World
    console.log(str2);//llo World 
    console.log(str3);//llo World
    str1 = str.slice(2,7);// 结束位置为7,不包含7
    str2 = str.substr(2,7);// 要返回的字符个数
    str3 = str.substring(2,7);// 结束位置为7,不包含7
    console.log(str1);//llo W 
    console.log(str2);//llo Wor 
    console.log(str3);//llo W

    substring()和slice()方法的区别:
      slice():是将所有的负值和字符串的长度相加
      substr():负的第一个参数和字符串长度相加,负的第二个参数转换为0
      substring():把所有的负值转换为0,substring()会将较小的数作为开始,较大的数作为结束

    **字符串位置方法**
      indexOf()和astlndexOf():这两个都是从一个字符串中搜索给定的子字符串,然后返回子字符串的位置,没有找到就是返回-1,区别在于一个从前面开始找,一个从后面开始找。
    **查看是否包含字符**
      includes():如果包含返回true,否则返回false
    **检测开始字符和结束字符**
      startsWith()和endsWith():返回true 不是返回false
    **去除字符空白方法**
      trim():去除字符串两端空白的方式,
      trimLeft():删除字符串开头空格。
      trimRight():删除字符串末尾的空格。
    **重复字符串**
      repeat():里面传入要重复的次数即可。
    示例:

    let str = "Hello"; 
    console.log(str.repeat(3));
    //HelloHelloHello

    **字符串大小写转换方法**
      toLowerCase()和toLocaleLowerCase()还有toUpperCase()和toLocaleUpperCase()

      用的较多的是:toLowerCase()和toUpperCase()
    ## JSON
      是2001年发明的一种轻量级数据存储格式,被很多服务用于数据序列化以及配置,经常用于Web服务之间交换信息,
    **JSON**
      - 属性名必须双引号引起来
      - 允许的值包括数字,true,false,null,数组,对象以及双引号引起来的字符串
      - 函数时不允许的
    **JSON对象转为字符串**
      使用方法为:JSON.stringify()
        如果一个字面量对象里面包含了方法,那么在使用JSON.stringify()方法将其转为字符串时,会直接忽略掉对象里面的方法。
    **字符串转为JSON对象**
      使用方法为:JSON.parse()
        当要将一个字符串转为JSON对象时,必须保证字符串的格式和JSON的格式一模一样,否则无法进行转换。
    **Math对象**
    **Math对象的常见属性**

    | 属性                 | 说明 | 
    | Math.E             | 自然数的底数,即常量e的值 | 
    | Math.LN10        | 10的自然对数 |
    | Math.LN2         | 2的自然对数 | 
    | Math.LOG2E     | 以2为底的对数 | 
    | Math.LOG10E    | 以10为底e的对象 | 
    | Math.PI            | 数学里面PI的值 |
    | Math.SQRT1_2  | 1/2的平方根()即2的平方根的倒数 |
    | Math.SQRT2     | 2的平方根 |
                                        

      这里用的稍微多一点的就是PI,直接拿出来用即可。
    **Math对象常见的方法**
      1·min()和max():求一组数值的最大值和最小值
    示例:

    let max = Math.max(3,5,8,1); 
    let min = Math.min(3,5,8,1); 
    console.log(max);//8 
    console.log(min);//1

    2·舍入方法ceil(),floor()和round()
      ceil():执行向上舍入
      floor():执行向下舍入
      round():四舍五入
    示例:

    let num = 3.14; 
    console.log(Math.ceil(num));//4 
    console.log(Math.floor(num));//3 
    console.log(Math.round(num));//3

    3·随机数方法
      Math.random()方法返回0-1之间的随机数,
        公式:值 = Math.floor(Math.random()*可能的值的总数+第一个可能的值)
    示例:

    let num = Math.random(); 
    console.log(num);//0.24003779065523112 
    // 生成25-50 之间的随机数
    // 可能指的计算:50-25+1 
    
    let rand = Math.floor(Math.random()*26 + 25);
    console.log(rand);//41
    
    封装一个函数,这个函数接收两个参数,然后可以返回这两个参数之间的随机数
    示例:
    
    let rand = function(x,y){ 
            let choice = y - x + 1; 
            return Math.floor(Math.random() * choice + x);
        } 
    console.log(rand(1,10));//3    

    **Date对象**
    **时间戳**
    就是从1970年1月1日0分0秒到现在为止的秒数。
    获取时间戳:是精确的了毫秒,秒数需要毫秒除以1000

    let now = Date.now(); 
    now = Math.round(now / 1000);
    console.log(now);

    静态方法

    Date.now()

    Date.parse():

      注意:浏览器不支持不表示日期只表示时间的字符串格式

      注意:在ECMAScript5中,如果使用标准的日期时间字符串格式规则的字符串中,数学前有 前置0,则会解析为UTC时间,时间没有前置0,则会解析为本地时间。其他情况一般都会解 析为本地时间

    Date.UTC():

      Date.UTCO同样返回给定日期的毫秒数,但其参数并不是一个字符串,而是分别代表年、月、日、时、分、秒、毫秒的数字参数,

      注意:该方法使用的是UTC时间,而不是本地时间

    日期对象构造函数

    不使用new关键字

    示例:

      

    如果不使用new关键字,那么就只是单纯的函数调用。会返回一个当前的日期和时间的字符串表 示。并且被当作函数调用时,会忽略所有传递进去的参数,如下:
    console.log(Date());
    //Mon Nov 27 2017 16:03:33 GMT+0800 (CST) console.log(Date("1990-03-23")); 
    //Mon Nov 27 2017 16:03:33 GMT+0800 (CST)

    使用new关键字

      如果使用new关键字,那么这个时候就会返回一个对象。

      1、使用n ew关键字但是没有传入任何参数

        会根据当前的日期时间来创建一个date对象

      2、传入数字参数

        则该参数表示与1970年1月1日0时0分0秒之间的毫秒数

      3、接收多个数字参数

        类似于Date.UTCO这个方法,不过返回的是一个对 象,而不是毫秒数。

      4、传入的是字符串参数

        返回该日期对象。如果字符串不能被解析为日期,则返回I nvalidDate

  • 相关阅读:
    多个装饰器装饰一个函数
    DRF 里面DestroyAPIView实例
    ERROR: Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-install-e7q1vcuk/mysqlclient/解决办法!
    python3 协程爬取两张妹子图
    python3 协程简单运用爬取两张妹子图
    gevent 简单运用
    D
    C
    B
    javascript cookie
  • 原文地址:https://www.cnblogs.com/lyl-0667/p/11185152.html
Copyright © 2011-2022 走看看