原生JS学习第二周(小结)

作用域、作用域链精解、立即执行函数、闭包、对象、包装类

  1. 立即执行函数(function (形参) {函数内容}(实参));
  2. 闭包 => 函数在子作用域被return 到外作用域导致的内存泄漏问题
  3. 对象:表达式=>可直接添加属性,如text.name等
  4. 包装类就是在给变量(无属性)赋属性的时候会new一个新变量对其赋值,然后在delete,无法对原值进行操作

原型、原型链、call/apply、继承模式、命名空间、对象枚举

  1. 原型=> 对象.prototype
    先在原对象查询属性,查不到就通过__proto__索引继承原型属性
  2. call 需要把实参按照形参的个数传进去,apply 需要传一个arguments(数组)
    call/apply 作用:改变 this 指向,区别:传参列表不同
    call(需要替换 this 的对象,形参)、apply(需要替换 this 的对象,[形参])
  3. 命名空间:管理变量,防止污染全局,适用于模块化开发
    利用闭包和函数继承时,可以保护全局变量不受改变
  4. 对象枚举:在枚举对象里属性的时候可以用 for( var prop in object ) 循环来遍历
  5. hasOwnProperty(prop)返回 true 则为自己的属性,false 则非自己的属性
  6. A instanceof B => A 对象是不是 B 构造函数构造出来的(官方定义)
    => 看 A 对象的原型链上有没有 B 的原型(理解)

this、arguments、克隆、三目元算符、数组、类数组

  1. this : (1). 函数预编译过程 this => window
    (2). 全局作用域里 this => window
    (3). call / apply 可以改变函数运行时 this 指向
    (4). obj.func(); func()里面的 this 指向 obj
  2. 克隆:浅层克隆 => 深层克隆
  3. 数组:常用的方法:(1). 改变原数组:push => 末尾加
    pop => 末尾减(只能单位操作), 相当于剪切操作
    shift => 首位加(可多位操作)
    unshift => 首位减, 相当于剪切操作
    reverse => 逆转数组顺序
    arr.splice(从第几位开始,截取多少的长度,在切口处添加新的数据)
    arr.sort( function () { return ; } ) 返回值负数前面的在前面,返回值为正数后面的在前面,返回值为零不动
    (2). 不改变原数组:arr.concat( arr1 ) => 把 arr1 接在 arr 后面
    toString:把数组变成字符串展示出来arr.slice(从该为开始截取,截取到该位)
    arr.join(’-’):[1 , 2] => “1-2”
    str.split(’-’):“1-2” => [“1” , “2”]
  4. 类数组:属性要为索引(数字)属性,必须有 length 属性,最好加上 push
    (1). 可以利用属性名模拟数组特性
    (2). 可以动态的增长 length 属性
    (3). 如果强行让类数组调用 push 方法,则会根据 length 属性值的位置进行属性的扩充

try…catch、es5标准模式

  1. try { } catch (error) { }:在 try 里面发生的错误,不会执行错误后的 try 里面的代码
    error.name => 错误名称
    error.message => 错误信息
    error.name 的六种值对应的信息:
    (1). EvalError:eval() 的使用与定义不一致
    (2). RangeError:数值越界
    (3). ReferenceError:非法或不能识别的引用数值
    (4). SyntaxError:发生语法解析错误
    (5). TypeError:操作数类型错误
    (6). URIError:URI处理函数使用不当
  2. es5.0严格模式:启动方法"use strict"
  3. eval (’ '):将字符串当代码来运行,但是 es3.0 都不能使用 eval();

获取窗口属性、获取dom尺寸、脚本化CSS

  1. document.style => 获取和改变行间样式
  2. window.getComputedStyle(ele, null);计算样式只读,返回的计算样式的值都是绝对值,没有相对单位,且IE8及IE8以下不兼容
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值