【JS高级】JS高级语法_基础总结深入(一)

目录

 

前言

一、数据类型

1、分类

2、判断

 3、undefined与null的区别?

4、什么时候给变量赋值为null呢?

5、严格区别变量类型与数据类型?

6、var a = XXX,a内存中到底保存的是什么?

7、关于引用变量赋值问题

8、在JS调用函数时传递变量参数时,是值传递还是引用传递

9、JS引擎如何管理内存?

二、对象

1、什么是对象?        

2、为什么要用对象?

3、对象的组成

4、如何访问对象内部数据?

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

 三、函数

1、什么是函数?

2、为什么要用函数?

3、如何定义函数?

4、如何调用(执行)函数?

5、什么函数才是回调函数?

6、常见的回调函数?

7、IIFE(匿名函数自调用)

 8、函数中的this

        this是什么?

        如何确定this的值?

9、关于语句分号问题

总结


前言

        主要讲解基础内容,数据类型(分类,判断,区别,内存等),对象(什么是对象,为什么要用对象,对象的组成,如何访问对象内部数据等),函数(什么是函数,为什么要用函数,如何定义函数,如何调用函数,什么是回调函数,常见的回调函数,IIFE及函数中的this)相关内容。


一、数据类型

1、分类

        基本(值)类型

        String:任意字符串

        Number:任意的数字

        boolean:true/false

        undefined:undefined

        null:null

        对象(引用)类型

        Objec:任意对象

        Function:一种特别的对象(可以执行)

        Array:一种特别的对象(数值下标,内部数据是有序的)

2、判断

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

                        不能判断:null与object      obejct与array

        instanceof:判断对象的具体类型

        ===可以判断:undefined、null

 

 3、undefined与null的区别?

        undefined代表定义未赋值;null代表定义并赋值了,只是值为null

4、什么时候给变量赋值为null呢?

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

        结束前,让对象成为垃圾对象(被垃圾回收器回收)

5、严格区别变量类型与数据类型?

        数据的类型:基本类型

                               对象类型

        变量的类型(变量内存值的类型)

                        基本类型:保存的就是基本类型的数据

                        引用类型:保存的是地址值

6、var a = XXX,a内存中到底保存的是什么?

        xxx是基本数据,保存的就是这个数据

        xxx是对象,保存的是对象的地址值

        xxx是一个变量,保存的是xxx的内存内容(可能是基本数据,也可能是地址值)

7、关于引用变量赋值问题

       2个引用变量指向同一个对象,通过一个变量修改对象内部数据,另一个变量看到的是修改之后的数据。

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

8、在JS调用函数时传递变量参数时,是值传递还是引用传递

        理解一:都是值(基本/地址值)传递

        理解二:可能是值传递,也可能是引用传递(地址值)

9、JS引擎如何管理内存?

        内存生命周期:分配小内存空间,得到它的使用权,存储数据,可以反复进行操作,释放小内存空间。

        释放内存:局部变量:函数执行完自动释放

                        对象:成为垃圾对象==>垃圾回收器回收      

         

二、对象

1、什么是对象?        

        多个数据的封装体,用来保存多个数据的容器,一个对象代表现实中的一个事物

2、为什么要用对象?

        统一管理多个数据

3、对象的组成

        属性:代表现实事物的状态数据

                属性名(字符串)和属性值(任意)组成

                属性名都是字符串类型,属性值是任意类型

        方法:代表现实事物的行为数据

                一种特别的属性(属性值是函数)

4、如何访问对象内部数据?

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

        ['属性名']:编码麻烦,能通用

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

属性名包含特殊字符:- 空格;属性名不确定

 三、函数

1、什么是函数?

       实现特定功能的n条语句的封装体,只有函数是可以执行的,其他类型的数据不能执行

2、为什么要用函数?

        提高代码复用,便于阅读交流。

3、如何定义函数?

        函数声明,表达式

        

4、如何调用(执行)函数?

        test():直接调用

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

        new test():new调用

        test.call/apply(obj):obj.test() 临时让test成为obj的方法进行调用

5、什么函数才是回调函数?

        三个特点:

       1、你定义的

        2、你没有调

        3、但是最终它执行了(在某个时刻或者某个条件下)

6、常见的回调函数?

        dom事件回调函数==>this是发生事件的dom元素

        定时器回调函数 ==>this是window

        ajax请求回调函数

        生命周期回调函数

7、IIFE(匿名函数自调用)

        全称:Immediately - Invoked Function Expression

        作用:隐藏实现,不会污染外部(全局)命名空间,用它来编写js模块

 8、函数中的this

        this是什么?

        任何函数本质上都是通过某个对象来调用的,如果没有直接指定就是window

        所有函数内部都有一个变量this,它的值是调用函数的当前对象

        如何确定this的值?

        test():window

        p.test():p

        new test():新创建的对象

        p.call(obj):obj

9、关于语句分号问题

        js一条语句的后面可以不加分号,是否加分号是编程风格问题,没有应不应该,只有你自己喜欢不喜欢。

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

        1、小括号开头的前一条语句

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

 解决办法:在行首加分号

强有力的例子:vue.js库


总结

    主要讲解基础内容,数据类型(分类,判断,区别,内存等),对象(什么是对象,为什么要用对象,对象的组成,如何访问对象内部数据等),函数(什么是函数,为什么要用函数,如何定义函数,如何调用函数,什么是回调函数,常见的回调函数,IIFE及函数中的this)相关内容。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值