zoukankan      html  css  js  c++  java
  • JS高级

    类型判断

    • typeof:

      • 可以判断:undefined/数值/字符串、布尔值、function

      • 不能判断: null与object object与array

    • instanceof

      • 判断对象的具体类型

    • ===

      • 可以判断:undefined,null

    1.undefined与null的区别?

      undefined代表定义未赋值

      null定义并赋值,只是值为null

    2.什么时候给变量赋值给null?

      初始赋值,表明赋值为对象

      结束前,使对象成为垃圾对象

    内存分类

    • 栈: 全局变量/局部变量

    • 堆: 对象(对象名为变量,存在栈内存中

    内存,变量,数据三者之间的关系

    • 内存用来存储数据的空间

    • 变量是内存的标识

    如何访问对象内部数据?

    • .属性名:编码简单,有时不能用

    • ['属性名']:编码简单,能通用

     什么时候使用['属性名']的方式?

      1.属性名包含特殊字符:- 空格

      2.属性名不确定

          var p = {}
         var propName = 'myAge'
         var value = 18
         p.propName =value //不能用
       p[propName] = value

    关于引用变量赋值问题

    • n个引用变量指向同一个对象,通过一个变量修改对象内部数据,其他所有变量看到的是修改之后的数据。

    • 2个引用变量指向同一个对象,让其中一个引用变量指向另一个对象,另一个引用变脸依然指向前一个对象

    函数

      如何执行函数

      • test():直接调用

      • obj.test():通过对象调用

      • new test():new调用

      • test.call/apply(obj):临时让test成为obj的方法进行调用(可以让一个函数成为指定任意对象的方法进行调用

    回调函数

    • 什么函数才是回调函数?

      • 你定义的

      • 你没有调用

      • 但它最终执行了(在一定条件下或某个时刻)

    • 常用的回调函数

      • dom事件回调函数

      • 定时器回调函数

      • ajax请求回调函数(后面讲解)

      • 生命周期回调函数(后面讲解)

      1.$是一个函数   2.$执行后返回的是一个对象

    函数中的this

    1. this是什么?

      • 一个关键字, 一个内置的引用变量

      • 在函数中都可以直接使用this

      • this代表调用函数的当前对象

      • 在定义函数时, this还没有确定, 只有在执行时才动态确定(绑定)的

    1. 如何确定this的值?

      • test()

      • obj.test()

      • new test()

      • test.call(obj)

      本质上任何函数在执行时都是通过某个对象调用的

    关于语句中的分号问题

    1. js一条语句的后面可以不加分号

    2. 是否加分号是编码风格问题, 没有应该不应该,只有你自己喜欢不喜欢

    3. 在下面2种情况下不加分号会有问题

      • 小括号开头的前一条语句

      • 中方括号开头的前一条语句

    4. 解决办法: 在行首加分号

    5. 强有力的例子: vue.js库

  • 相关阅读:
    RPC中阻塞队列的作用
    记用tensorflow-ranking时的bugs
    JDK作泛型比较时为什么把逻辑代码写两遍
    Java 不能声明泛型数组
    QuickSort Hoare vs Lomuto
    Java 对数组扩容
    Java交换两对象的问题
    毕业 失业
    dependencyManagement介绍
    web笔记
  • 原文地址:https://www.cnblogs.com/yaokai729/p/11371867.html
Copyright © 2011-2022 走看看