JS基础 概念

1.如何判断js数据类型

        第一种    typeof '111'  它会返回一个 字符串类型的返回值  但是不能识别 null 只能用 === 与识别  未定义的变量会返回undefined

        第二种 instanceof 不能用于判断原始数据类型  可以判断对象数据类型

2.js的创建函数的几种方法

        字面量对象 let arr =[1,2,3]    通过 new Object声明一个对象   利用显示构造函数创建对象

3.js 的宿主对象与原生对象的区别        

        原生对象:是js中的本地对象 也就是自带的对象 例如 Object  Function Array Date  RegExp ...

        宿主对象:所飞本地对象都是宿主对象所用的DOM BOM都是宿主对象

4.js内置常用对象 并举出该对象的常用方法

       数组对象:delete 运算符 删除对象里面的值 但是长度还在 所占空间还在  concat()连接数组 solice()插入删除或者替换数组的元素 

        时间对象 date 创建时间对象new Date  Date.getDate()返回一个月中的某一天....

        异常对象 Error   Error.name 错误的类型    Error.message可以读取的错误消息

        数学对象Math对象  Math.PI() 获取圆周率   Math.abs() 获取绝对值    Math.foor()向下取整去掉小数  Math.runde()四舍五入

5.null 与  undefined的区别   

       null表示为空值  而 undefined表示的是定义未赋值  

6.js中什么情况会返回undefined值

        访问声明 但是没有初始化的白能量  访问不存在的属性  访问函数的参数没有被现实的传递的值    没用定义return的函数的隐式返回  函数retunr中没有返回任何东西

7.如何区分数组和对象

        ES6中通过 isArray([]) true /flase

        通过instanceof识别 [] instanceof true/flase

8.怎么判断两个对象相等

        判断两个对象是否指向同一个内存    判断两个对象建名数组是否相等  遍历键名 判断值是否相等

9.什么是伪数组  如何将其转换为真数组

        伪数组:具有length属性 按照索引的方式进行储存数据   不具有数组的push pop等方法但是仍可以遍历他们

        使用array.from()将假数组,转换为真数组 

10.src和href的区别是

        src指向外部资源的位置 指向的内容将会嵌入到文档中当前标签的所在位置 请求src资源时会将其指向的资源下载并应用到文档中

       href超文本引用 指向网络资源所在位置  建立当前元素锚点 或者当前文档之间的链接 

11.使用原生js绑定两个点击事件

        let btn1 =  document,getElementById('btn1') 

        btn1.addEventListener('click',()=>{alert('hello1')})

        btn2.addEventListener('click',()=>{alert('hello2')})

12.在js中如何比较两个对象

         使用 == 或 === 对两个不同的却具有相同属性性及属性值的对象进行比较  他们的结果却不相等 因为比较的是他们的索引地址(内存地址) 而不是基本类型 

13.js中的作用域 预解析与变量声明提升 

 作用域就是变量的有效范围 在一定的空间里可以对数据进行读写操作  这个空间就是数据的作用域

        全局作用域: 最外层的函数定义的变量拥有全局作用域 即对任何内部函数来说 都是可以来访问的 

        局部作用域: 局部作用域一般只有在固定的代码片段中可以访问 对于函数外部是无法访问的

        块级作用域: 凡是代码块就可以划分的变量的作用域 ,这种作用域就是块级作用域

预解析 把变量声明提升到当前作用域的最前面 只会提升声明 不会提升赋值     把函数声明提升到当前作用域的最前面 只会提升声明 不会提升调用  先提升let 在提升function

14.什么是作用域链 如何延长作用域链

          当代码在一个环境中执行 会创建变量对象的一个作用域链   由子级作用域返回父级作用域中寻找变量 叫做作用域链  

        延长作用域链 执行环境的类型只有两种 全局和局部,但是有些语句可以在作用域链的前端临时增加一个变量对象 该变量对象会在代码执行后被移除 在执行这两个语句的时候 作用域链都会加强 try-catch 语句的catch块 会创建一个新的变量对象 会抛出一个错误对象的声明  with语句 会指定对象添加到作用域链中  

15.js变量存储的方式区分为那些类型 其特点是什么

        值类型和引用类型   值类型储存的值 赋值后原变量的值不变    引用类型储存的是地址 赋值之后是把原变量的引用地址赋值给新变量 新变量改变原来的会跟着改变

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值