node.js

什么是js?

  JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的 编程语言 。. 虽然它是作为开发 Web 页面的 脚本语言 而出名,但是它也被用到了很多非 浏览器 环境中,JavaScript 基于原型编程、多范式的动态脚本语言,并且支持面向对象、命令式和声明式(如 函数 式编程)风格。

什么是js中的堆栈?

堆和栈的概念存在于数据结构中和操作系统内存中。在数据结构中,栈中数据的存取方式为 先进后出。而堆是一个优先队列,是按优先级来进行排序的,优先级可以按照大小来规定。完全二叉树是堆的一种实现方式。在操作系统中,内存被分为栈区和堆区。栈区内存由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。堆区内存一般由程序员分配释放,若程序员不释放,程序结束时可能由垃圾回收机制回收。

es6的新特性

let 不能重复声明变量,var 可以重复声明变量;

块级作用域,es5中存在全局作用域、函数作用域、eval作用域;es6中引入了块级作用域,let声明的变量在块级作用域{}内有效

let声明的变量不存在var的变量提升问题.

null和undefined有什么区别?

 在JavaScript中将某个变量赋值为undefined或null,实际上没有太大的差别,两者都是表示某个变量的值为“空”。

        undefined不是关键字,而null是关键字;


        undefined和null被转换为布尔值的时候,两者都为false;


        undefined在和null进行==比较时两者相等,全等于比较时两者不等
 

       使用Number()对undefined和null进行类型转换

 
      undefined本质上是window的一个属性,而null是一个对像


 ​​​​​​undefined和null的用途 

         null表示没有对象,即不应该有值,经常用作函数的参数,或作为原型链的重点。

        undefined表示缺少值,即应该有值,但是还没有赋予(变量提升时默认会赋值为undefined,函数参数未提供默认为undefined,函数的返回值默认为undefined)

==和===有什么区别?

==用于一般比较,===用于严格比较,==在比较的时候可以转换数据类型,===严格比较,只要类型不匹配就返回flase。

先来看看 == 这兄弟:

强制是将值转换为另一种类型的过程。在这种情况下,==会执行隐式强制。在比较两个值之前,==需要执行一些规则。

假设我们要比较x == y的值。

如果x和y的类型相同,则 JS 会换成===操作符进行比较。

如果x为null, y为undefined,则返回true。

如果x为undefined且y为null,则返回true。

如果x的类型是number, y的类型是string,那么返回x == toNumber(y)。

如果x的类型是string, y的类型是number,那么返回toNumber(x) == y。

如果x为类型是boolean,则返回toNumber(x)== y。

如果y为类型是boolean,则返回x == toNumber(y)。

如果x是string、symbol或number,而y是object类型,则返回x == toPrimitive(y)。

如果x是object,y是string,symbol 则返回toPrimitive(x) == y。

剩下的 返回 false
 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值