zoukankan      html  css  js  c++  java
  • 函数、对象

    数据类型

      基本数据类型:number、string、boolean、undefined、null

      引用数据类型:Array、Function、Object

    类型转换

      转换为true:非空字符串、非0数字、任何对象

      转换为false:空字符、0、false、null、undefined

    堆和栈

      栈区:存储基本数据类型和引用数据类型的地址

      堆区:存储引用数据类型的数据

    1. 函数

      封装性、将执行代码封装在一个独立的执行环境中。可以反复调用,减少代码冗余

      函数体内提供的一个伪数组。argument中存放所有实参

      1. return

        作用:终止函数的执行,将结果返回给调用者,调用者可以用变量接收返回的结果。

    function 函数名() {
         //函数体内没有return;    默认返回undefined
         //return 数据;       终止函数并返回数据
          //return;         终止函数返回undefined    
    }        
    

      2. 作用域链

      当访问一个变量时,会先从本作用域中找,若找不到则向上一级作用域中找,以此类推就形成了一个作用域链。

      3. 预解析

      程序在执行之前的一个准备过程,这个过程就是预解析。预解析要做两件事情。

    • 把变量名提升到当前执行环境的顶部
    • 把函数体提升到当前执行环境的最顶部

    2. 对象

      1. 创建方式

        ①通过new关键字调用系统提供的object构造函数;  

    var 变量名 = new Object();  
     or var 变量名 = { };    //字面量写法推荐使用,推荐使用
    

        ②自定义构造函数; 

    function stu (n, a, g){
        this.name = n;
        this.age = a;
        this.gender = g;
    }
    var stu1 = new stu('张三', 12, '男')
    

      2. 普通函数与构造偶函数区别

        命名规则区别:普通函数采用驼峰命名,构造函数采用帕斯卡命名法(首字母大写);

        调用方式:普通函数直接调用,构造函数需要通过new调用;

        目的不同:普通函数实现一些功能,构造函数专门来创建对象。

      3. 系统提供的构造函数与自定义狗杂函数区别

        系统提供的构造函数创建的对象叫内置对象

        自定义构造函数创建的对象叫做自定义对象

      4. new关键字作用

        调用构造函数创建对象

        执行过程

          ①在内存中创建一个空的对象

          ②让this指向这个空对象

          ③通过this给这个对象添加属性和方法

          ④将对象返回给调用构造函数的调用者

        object是JS中祖宗类,所有不同类型的对象,都直接或间接继承与它

        1. 对象的操作

          给对象设置属性和方法:   对象名.键名 = 值  or  对象名['键名'] = 值

          删除对象中属性和方法:   delete 对象.键名    or   delete 对象['键名']

          检测属性和方法:  对象.hasOwnProperty('键名')

          遍历对象的键值对:

    for(var key in obj){
        console.log( obj[key] );     //遍值
        console.log( key );       //遍键名
    }
    

          检测对象的类型(检测对象类型不要用typeof):对象 instanceof 构造函数

      5. 内置对象

        Math对象

          Math.abs(数字);获取一个数字的绝对值

          Math.round(数字);四舍五入

          Math.PI; π

          Math.ceil(数字);向上取整

          Math.floor(数字);向下取整

          Math.random(); 随机数 [ 0, 1 )

          Math.max(数字,数字.....);求最大数

          Math.min(数字,数字......);求最小数

        Date对象

          1. 创建Date类型对象

            var 变量 = new Date();    //创建当前时间对象

            var 变量 = new Date('2019-2-2 3:3:3');   or   var 变量 = new Date('2019/2/2 3:3:3');    //创建指定时间

            var 变量 = new Date( value );   //创建1970年开始value毫秒后的事件对象

            var data = new Date(2018, 6,6,12,12,12,12);    //

          2. 常用Data对象方法

            获取和设置年月日         

              日期对象.getFullYear()     /    日期对象.setFullYear()
              日期对象.getFullMonth()   /    日期对象.setFullMonth()
              日期对象.getDate()      /    日期对象.setDate()

            获取和设置时分秒       

              日期对象.getHours() / 日期对象.setHours()
              日期对象.getMinutes() / 日期对象.setMinutes()
              日期对象.getSeconds() / 日期对象.setHours()

            获取星期天数

              日期对象.getDay();   // 0-6(周日0到周六6)

            获取1970年至今的总毫秒数

              日期对象.getTime()  /  日期对象.setTime(数字);

        Array对象

          向数组前后中添加元素

            arr.unshift( ele1, ele2.....);     //向数组开头添加,并返回新的长度

            arr.push(ele, ele2......);   //向数组结尾添加

          从数组前后删除元素

            arr.shift();    // 删除并返回数组第一个元素

            arr.pop();    // 删除并返回数组最后一个元素

          数组任意位置添加,删除

            arr.splice(index,how,item1,item2...);   //index从哪个位置开始删除;how删几个

          数组元素的查询

            arr.indexOf();    //返回找到元素第一个索引,不存在返回  -1

          数组元素的拼接

            arr.join();把数组元素放入一个字符串 

    var arr = [1,2,3]
    arr.join('=')
    //输出便是‘1=2=3’

          数组的反转和排序

            arr.reverse();   //颠倒数组元素顺序

            arr.sort();     //默认排序是根据字符串Unicode吗  

    arr.sort(function(a, b){      //升序
        return a-b
    })
    arr.sort(function(a, b){      //降序
        return b-a
    }) 

        扩展方法

    //数组遍历
    arr.forEach(function(value, index){
       console.log(value) 
    })
    //过滤符合条件的元素,返回一个新数组
     arr.filter(function(value,index){
       return value > 50     
    })
    //验证数组每一个元素是否符合指定条件,返回布尔
    arr.every(function(value, index){
       return 条件     
    })
    //验证数组中元素是否有符合指定条件的返回布尔
    arr.some(function(value, index){
        return 条件
    })
    //遍历数组中每一个元素,更改后存入一个新数组,并返回新数组
    arr.map(function(value, index){
       return value*2 
    })
    

       string对象

          字符串不可变性:var str = ‘abc’;str = ‘hellow’;从新给var赋值数据‘abc’不会被修改依然在内存中,重新给字符串赋值,会重新在内存中开辟空间,这个特点就是字符串的不可变性

          字符串所有的方法,都不会修改字符串本身,操作完成后会返回一个新的字符串

          获取字符串的单个字符

            str.charAt(index)    or    str[ index ]

          字符串的拼接和截取

            str.concat(art1,art2...)  or   str1  +  str2

            str.slice(star, end)     //截取

          去除空白符

            str.trim();   //去除两边空白符

          字符大小写转换

            str.toUpperCase();    //转换大写

            str.toLowerCase();   //转换小写

          字符串替换

            str.replace(old, new)

          字符串分隔

            str.split();   //把一个字符串分隔成数组

        

  • 相关阅读:
    通过ifconfig命令分析
    网络协议初探
    商品详情页面属性价格显示其对应价格
    ecshop属性 {$goods.goods_attr|nl2br} 标签的赋值相关
    CI模板中如何引入模板
    jQuery取得/设置select的值
    ecshop如何增加多个产品详细描述的编辑器
    获取span里面的值(特殊情况下 )
    一个页面有相同ID元素的情况分析
    表单辅助函数-form_open()
  • 原文地址:https://www.cnblogs.com/xhrr/p/11169272.html
Copyright © 2011-2022 走看看