牛客刷题笔记(摘自牛客评论区)

牛客网评论区

  • ​ ==delete 操作符用于删除对象的某个属性;==如果没有指向这个属性的引用,那它最终会被释放。

typeof 能判断类型有:number、string、boolean、symbol、undefined、function; **object、**array、null 的变量都返回 object

Object.prototype.toString() 为 Object 对象的实例方法,默认情况下(即不重写该方法),返回参数的类型字符串。

Array 为js的原生对象,它有一个静态方法:Array.isArray(),能判断参数1是否为数组

class和let一样都有暂时性死区,在被声明前无法访问

也就是在当前作用域能找到,但是要在声明后才能访问
es6中的classlet const一样都不存在提升
(实际存在提升,只是因为TDZ的作用,并不会像var那样得到undefined,而是直接抛出错误)

临时死区(Temporal Dead Zone),简写为 TDZ

letconst 声明的变量不会被提升到作用域顶部,如果在声明前访问这些变量,会导致错误:

原来的代码
var a = 1;
function test(){
    //console.log(a) 位置A
class a {}
   // console.log(a) 位置B
}
test();

实际上提升后的
var a = 1;
function test(){
    console.log(a) 位置A //在test()作用域内找得到a
//是一个class但是存在TDZ暂时性死区,访问报错
    class a {}
    console.log(a) 位置B //a已经声明创建出来了
}
test()
  • in操作符,对于数组属性需要指定数字形式的索引值来表示数组的属性名称(固有属性除外,如length)。

  • 所以说在这里,1 in [1]并不是表示数字1在不在数组里。而是表示数组中含不含有1这个索引index值。 数组长度为1,所以只含有的index值为0,这个表达式返回fasle

  • 任何数值除以0都会导致错误而终止程序执行。但是在 JavaScript 中,会返回出特殊的值,因此不会影响程序的执行。

  • 比0大的数除以0,则会得到无穷大,所以 js 用 Infinity 来显示出来。

  • 也就是1/0得到的是Infinity。isNaN(1/0)返回的是false。但是isNaN(0/0)返回的就是true

1 && 2 > 1,先判断右边的表达式,2>1返回true。1 && true返回的结果也是true。>号的权重大于&&,所以先是右边开始

Array对象方法

js基本数据类型包括:

1.Number

typeof 123 =>“number”

2.String

typeof 'abc' =>“string”

3.Boolean

typeof true =>“boolean”

​ 4.Function

typeof console.log()=>“function”

​ 5.Object

typeof null =>“object”

typeof { } =>“object”

typeof [ ] =>“object”

6.Undefined

typeof undefined =>“undefined”

题中的Array属于数组对象

typeof new Array() =>“object”

值得一提的是typeof打印出的类型都是字符串类型,且首字母小写

例如:typeof(typeof undefined) =>“string”

类的本质是函数,实际上,ES6中的类可以视为ES5中构造函数的另一种写法

类的所有实例方法均定义在类的原型对象上,因此,在类内定义的实例方法和在类的原型对象上定义方法是等价的

数组的sort()方法

升序排序 return a - b; 降序排序 return b - a。

==setMonth(n)==这里是0-11分别对应1-12月
由于存在变量提升,在if语句执行之前会先使用var声明变量a,并且声明时是在全局作用域下,因此变量a自动成为window对象的属性,故a in window的返回结果为true,使用“!”将条件取反后返回结果为false,所以不会执行if中的赋值语句,a值为undefined

数组的方法

pop()方法用于删除数组的最后一个元素,并返回被删除的最后一个元素,这样的话数组就被改变了。 splice()方法可以对数组中已经存在元素进行删除,也可以添加元素到数组中。 sort()方法对数组中所有的元素都进行排序,如果没有提供比较函数compareFunction,则按照字符串的Unicode码的顺序进行排序。 所以以上三种方法都改变了数组。 而 concat()方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本,返回一个新的数组。该数组是通过把所有的arrayX参数添加到arryaObject中生成的,如果要进行 concat()操作的参数是数组,那么添加的是数组中的元素,而不是数组。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值