原始类型有那几种

number (数值型),string(字符串型),null  ,undefined  ,boolean  ,symbol   (symbol是ES6新增的基本数据类型)`

null 按照万物皆对象原理判定是一个对象,但null 不是一个对象,在32位操作系统中为了性能考虑使用低位存储变量的信息,000开头代表对象,null表示全0,所以被误判为object, 如今内部判断代码以改变。。bug却保留下来。

区别typeof 与instanceof  判断类型的

typeof  :对于原始值,除了null都能判断正确的类型

typeof 对于对象来说,除了函数都会显示object,      object 不能准确判断类型

instanceof 可以判断一个实例是否属于当前类,因此可判断类型

对象类型和原始类型的区别

原始类型存储值,存与栈中,对象类型存储指针堆中;函数参数是对象时,,由于变量中存的是指针,值存在堆中;函数参数是对象时,由于变量中存的是指针,因此函数中对于对象类型的值的变化也会在全局 中体现

== 和=== 有什么区别

`== 会进行隐式的类型转换(两个类型不相同会转换为数字进行比较,如果到字符串级别可以比较了就不会再向下进行转换)`

​   `=== 全等,就是判断两者类型和值是否相同。

闭包的定义`与不足

`闭包的含义:函数在声明时,会保存其所在的词法环境(所有父作用域) 到 scopes 属性里 , 如果是函数作用域, 就称为闭包,简单理解就是 外层函数 是内层函数的闭包 -- 必须是函数套函数的方式`

简单来说,闭包就是能读取其他函数内部的变量

`缺点:浪费内存. 外层函数的作用域不会自动销毁, 会被内层函数保存`

`作用:在ES6 2015年之前, 用于避免全局变量污染. 利用闭包, 为函数提供私有的变量, 避免全局变量污染`

function f1(){

        var a = 100;

        function f2(){

            return a;

      }

        return f2();

    }

    // 把f2()执行的结果当成f1()返回值,返回值是函数执行的结果。

    /var res = f1();

    console.log(res);

浅拷贝与深拷贝的定义与区别

浅拷贝:浅拷贝复制引用,复制后的引用都指向同一个对象的实例,彼此之间的操作互相影响

浅拷贝:直拷贝指针地址

/深拷贝指拷贝一个对象的数据之前先拷贝其对象的堆地址,这样改变数据的时不会影响被拷贝的对象

并发与并行的区别

并发:宏观概念,有两个任务A和B,在一段时间内,通过A和B 两个任务间切换,来完成两个任务,这种情况叫并发(一段时间内多个程序可以切换,;;来完成两个任务这种情况叫并发,一个cpu即可)

2.并行。多个任务的行:微观概念假设cpu有两个核心,那么我们就可以同时完成a,b 两个任务即:同时完成完成多个任务可以称为并行(一个时间点内多个程序可以运行,的多个cpu)

回调函数的定义

就是一个函数以传参的方式传给l另一个函数调用,那么这个函数就叫做是回调函数

缺点:但是回调函数有一个致命的弱点,就是容易写出回调地狱,及不能使用tr  catch 铺获错误,不直接return

解决:1.Gernerator  2,Promise 3.async及await

进程与线程区别

一个程序必定包含》=1 个进程,

一个进程必定包含》=1个线程

进程之间不共享【内存】每多一个进程就要多分配一定的内存。`

JS单线程带来的好处:`

`JS主要是面向浏览器的,因此是和用户实时交互的,如果多线程执行的话,你无法确定同时开始的任务哪个会先结束,以网页加载为例,可能导致网页HTML结构已经加载好,但是CSS样式还未加载完成,导致用户浏览体验差。或者两个线程同时对一个DOM结点进行修改和删除操作,则无法判断以哪个线程为准。`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值