pink老师js学习记录(二)

一、预解析

  • js引擎运行js分为两步:预解析和代码执行。
    预解析:js引擎会把js里面所有的var 还有function提升到当前作用域的最前面
    代码执行:按照代码书写的顺序从上往下执行

  • 预解析分为变量预解析(变量提升)和函数预解析(函数提升)
    变量提升:是把所有的变量声明提升到当前的作用域最前面 不提示赋值操作。
    函数提升:就是把所有的函数声明提升到当前作用域的最前面 不调用函数

二、对象

  • 对象是由属性和方法组成

1.创建对象的三种方式

  • 1.利用对象字面量创建对象{}
  • 2.利用new Object()创建对象:利用等号赋值的方法添加对象的属性和方法,每个属性和方法用分号结束。
    <script>
        // 利用 new Object 创建对象
        var obj = new Object(); // 创建了一个空的对象
        obj.uname = '张三疯';
        obj.age = 18;
        obj.sex = '男';
        obj.sayHi = function() {
                console.log('hi~');
 
            }
            // (1) 我们是利用 等号 = 赋值的方法 添加对象的属性和方法
            // (2) 每个属性和方法之间用 分号结束
        console.log(obj.uname);
        console.log(obj['sex']);
        obj.sayHi();
    </script>
  • 3.利用构造函数创建对象
      // function 构造函数名() {
        //     this.属性 = 值;
        //     this.方法 = function() {}
        // }
        // new 构造函数名();
  • 构造函数名字首字母要大写
  • 构造函数不需要return就可以返回结果
  • 调用构造函数必须使用New
  • 属性和方法前面必须加this

构造泛指某一大类,对象是指一个具体事物。

2.遍历对象

for…in 遍历对象 (遍历的是对象的属性名)

三、内置对象

  • JS中的对象分为三种:自定义对象,内置对象(Math、Date、Array、String等),浏览器对象。
  • 查文档(MDN)使用内置对象
  • Math.floor() 向下取整、Math.ceil()向上取整、Math.round()四舍五入 round(-1.5) = -1往大了取
  • Data()日期对象 是一个构造函数,必须使用new来调用创建我们的日期对象 new Date(),实例化以后才能使用。
  • +new Date() 返回总的毫秒数()与1970年1月日相差的毫秒数

四、数组对象

1.创建数组的两种方式

  • 利用数组字面量 var arr = [1,2,3]
  • 利用new Array()
var arr1 = new Array(2, 3); //等价于创建两个数组元素[2,3]

2.监测是否为数组

  • instanceof 运算符,检测是否为数组

  • Array.isArray()

3.添加删除数组元素

  • push(): 在数组的末尾添加一个或多个数组元素,push完毕之后返回的是新数组的长度,原数组也会变化
  • unshift() :在数组开头添加一个或多个数组元素,unshift完毕之后返回的是新数组的长度,原数组也会变化
  • pop():可以删除数组的最后一个元素(一次只能删除一个元素),pop之后返回的结果是删除的那个元素,原数组也会发生变化。
  • shift():可以删除数组的第一个元素(一次只能删除一个元素),shift之后返回的结果是删除的那个元素,原数组也会发生变化。

4.数组排序

  • 翻转数组:reverse()
  • 数组排序:sort()
var arr = [1, 7, 55, 66 ,24];
arr.sort(function(a, b){
     return a - b; //按照升序排序
     return b - a; //按照降序排序
})

5.获取数组索引

  • indexOf(数组元素) : 返回数组元素的索引号,没有返回-1,有多个返回第一个
  • lastIndexOf:倒着查,从后面开始查,注意元素的索引还是不变,第一个元素索引还是0

6.数组去重

  • 遍历旧数组,然后拿着旧数组的元素去查询新数组(利用indexOf查询),如果新数组中没有该元素,就把该元素添加到新数组中。

7.数组转换为字符串

  • toString() 将数组转换为字符串
  • join(分隔符) arr.join(‘-’)
  • concat() 连接两个或多个数组,不影响原数组。
  • 数组截取slice(begin,end)
  • splice() 数组删除 splice(第几个开始,要删除的个数)

五、字符串对象

字符串不可变(内存空间),所以不要大量拼接字符串

1.根据字符返回位置

  • indexOf: str.indexOf(‘要查找的字符’,[起始的位置])
  • lastIndexOf:从后查找

2.根据位置返回字符

  • charAt(index)
  • charCodeAt(index) 返回相应索引号的字符ASCII值 目的:判断用户按了哪个键
  • str[index] H5新增的

3.字符串操作方法

  • concat(str1,str2,str3…)用于连接两个或多个字符串
  • substr(start, length) 从start位置开始,length截取几个字符
  • replace(‘被替换的字符’,‘替换的字符’),替换字符,只会替换第一个字符
  • 字符转化为数组 split(’分隔符‘)

五、简单数据类型和复杂类型

简单数据类型null 返回的是一个空对象

  • 简单数据类型放在栈里面的(存的是值),复杂数据类型放到堆里面(栈中存地址,这个地址指向堆里面的数据)。
  • 把引用类型的变量传给形参时,其实是把变量在栈空间里保存的地址复制给了形参
  • 26
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值