js基础部分笔记

1. 数据类型系列问题

1.1 数据类型的分类

(1)基本数据类型:undefine、Null、Number、Boolean、String、BigInt、simbol(后两个ES6新增)
(2) 引用数据类型:Object

1.2 存储问题:

  (1) js中所有的变量都是存储在栈内存中
  (2) 基本数据类型直接在栈中存值。
  (3) 引用数据类型数据存储在堆内存中,其变量是在栈中存储地址,在根据地址去堆内存中取值。
  (4)综上,基本数据类型的存储是互相独立的,引用数据的存储是不独立的,如果A和B的地址同时指向堆内存的统一位置,A修改值,B也随着改变。

1.3 赋值问题:

   (1)基本数据类型赋值
   (2)引用数据类型赋“址”

1.4 undefine 和Null 问题

1.4.1 类型
(1) typeof (undefine) = undefine
(2)typeof(Null) = Object
1.4.2 运算
(1) undefine与任意类型的值运算均为NaN
(2)Null在运算时将其视为0
1.4.3 判断
(1) undefined = = Null true
(2)undefined = = = Null false
1.4.4 什么情况下返回undefine
(1) 声明了变量,但未赋值
(2) 函数没有返回值
(3) 函数没有传参
注意: typeof 与instanceof的区别
typeof 用于说明数据的类型
instanceof 用于判断一个变量是否属于某个实例对象
1.4.5 ‘’ 和 ‘=’
== 只要求数组相同即可,再比较之前会先进性类型转换
=== 必须数据类型和数值都要相同
1.4.6 js中的六个假值
undefined 、 null、 NaN、 0 、“”(空字符串) false
构造函数都是真值,如 new Boolean(false) new Number(0)

2. 函数

所有的函数都是对象

  • 函数的定义

(1) 利用函数关键字定义函数

function foo(){}

(2) 函数表达式

var fn = function(){}

(3) 使用构造函数 new Function() 不清晰

var fn = new Function(‘参数1’,‘参数2’ , ‘执行语句1’;‘执行语句2)
  • this指向问题

    (1) 默认绑定
    (2) 隐式绑定 obj.fn()
    (3) 显示绑定 call(), apply(), bind()()
    (4) new关键字绑定
    (5)箭头函数,没有this指向,与父级保持一致

  • 高阶函数
    在函数的内部再定义函数,或者将函数作为返回值。

  • 闭包
    定义:一个函数想要访问另一个函数域中的局部变量,这就产生了闭包,被访问的函数称为闭包函数。

  • 深拷贝和浅拷贝
    深拷贝是拷贝的值,A深拷贝B的值,B发生改变,A不变
    浅拷贝是拷贝的址,A浅拷贝B,A的值发生变化,B也变

  • 面向对象和面向过程
    面向过程:先分析步骤,按照步骤一步步执行
    优点:性能高
    面向对象:根据功能划分
    优点:易复用、易拓展、易维护。由于对象具有继承、封装、多态的性能,因此容易开发低耦合的项目。
    缺点:性能低

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值