JS

对象

对象就是一组“键值对”(key-value)的集合,是一种无序的复合数据集合

对象的增删改查

属性的遍历:for...in 循环

for...in循环用来遍历一个对象的全部属性。

两个使用注意点

· 它遍历的是对象所有可遍历(enumerable)的属性,会跳过不可遍历的属性。

· 它不仅遍历对象自身的属性,还遍历继承的属性。

总结:一般情况下,都是只想遍历对象自身的属性,所以使用for...in的时候,应该结合使用hasOwnProperty方法,在循环内部判断一下,某个属性是否为对象自身的属性。

for...in循环不仅可以遍历对象,也可以遍历数组,毕竟数组只是一种特殊对象。(不推荐)


推荐使用for循环或while循环


数组最前面增加一个对象

https://blog.csdn.net/qq_41702660/article/details/81436725

splice方法splice(开始位置,删除个数,要添加的)

在最前面增加一个成员,直接unshift(要添加的)     

那么shift就是删掉最前一位

push()最后一位增加

trim() 删除两端空格

parseInt() 转化为整数

parseFloat方法用于将一个字符串转为浮点数。

isNaN方法可以用来判断一个值是否为NaN

toString() 转化为字符串

typeof返回的数据类型

使用JSON.parse()方法来转化json对象


函数

JavaScript 有三种声明函数的方法。

1.function 命令函数的声明

2.函数表达式

3.Function 构造函数

arguments 对象

由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数。这就是arguments对象的由来

arguments对象包含了函数运行时的所有参数


你知道三元运算符吗?怎么用?

问号之前做判断,为 true 返回 冒号前的,为false返回冒号后面的


如何判断 NaN?

isNaN()


JS有几种数据类型

https://blog.csdn.net/lgno2/article/details/111659563

数据类型可以分为两类:原始数据类型(基础数据类型)和 引用数据类型(对象类型)

共8种

原始数据类型 

·    number

·    string

·    boolean

·    null

·    undefined

·    symbol(ES6)这种数据类型主要用于创建一个独一无二的标识

·    bigint(ES10)

引用数据类型

·    object


Js 中的原始值和引用值:

https://www.cnblogs.com/ay-a/p/8698259.html


== 跟 === 的不同

https://www.zhihu.com/question/31442029

==是相等运算符,===是全等/严格运算符,前者判断数据的值,后者先判断数据类型再判断值

js中使用==会造成类型转换,对后续代码会造成意外的影响


JavaScript中var、let和const的区别

1. var定义的变量可以修改,如果不初始化会输出undefined,不会报错。

    var 声明的变量存在提升


2. let是块级作用域,函数内部使用let定义后,对函数外部无影响。

    在同一个块级作用域,不能重复声明变量。

    let 声明的变量不存在变量提升,换一种说法,就是 let 声明存在暂时性死区(TDZ)。


3. const定义的变量不可以修改,而且必须初始化。

const 声明方式,除了具有 let 的上述特点外,其还具备一个特点,即 const 定义的变量,一旦定义后,就不能修改,即 const 声明的为常量。

例如:

但是,并不是说 const 声明的变量其内部内容不可变,如:

所以准确的说,是 const 声明创建一个值的只读引用。但这并不意味着它所持有的值是不可变的,只是变量标识符不能重新分配。


总结

1.    var 声明的变量属于函数作用域,let 和 const 声明的变量属于块级作用域;

2.    var 存在变量提升现象,而 let 和 const 没有此类现象;

3.    var 变量可以重复声明,而在同一个块级作用域,let 变量不能重新声明,const 变量不能修改。

4.    var 和 let 用以声明变量,const 用于声明只读的常量;

5.    var 声明的变量,不存在块级作用域,在全局范围内都有效,let 和 const 声明的,只在它所在的代码块内有效;

6.    let 和 const 不存在像 var 那样的 “变量提升” 现象,所以 var 定义变量可以先使用,后声明,而 let 和 const 只可先声明,后使用;

7.    let 声明的变量存在暂时性死区,即只要块级作用域中存在 let,那么它所声明的变量就绑定了这个区域,不再受外部的影响。

8.    let 不允许在相同作用域内,重复声明同一个变量;

9.    const 在声明时必须初始化赋值,一旦声明,其声明的值就不允许改变,更不允许重复声明;

10.    如 const 声明了一个复合类型的常量,其存储的是一个引用地址,不允许改变的是这个地址,而对象本身是可变的。


由于 JavaScript 允许函数有不定数目的参数,所以需要一种机制,可以在函数体内部读取所有参数。这就是arguments对象的由来。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. JS创建变量的5种方式?varletconstfunctionexport/import 2. var,le...
    Angel_6c4e阅读 4,318评论 0 13
  • 目前 JavaScript 仍是前端开发的灵魂,各种层出不穷的框架其实都是与底层相关。 开始之前,借前端三元同学的...
    WEB前端含光阅读 2,682评论 0 0
  • 一,JavaScript的书写格式 1.行内脚本:写在HTML标签内部,通过一个属性节点来添加,不推荐使用,例如“...
    刘远舟阅读 3,401评论 0 0
  • js语言学习 1.基本概念: 1.js是区分大小写的 2.标识符命名规则: 第一个字符必须是一个字母、下划线(_)...
    NSQAQ阅读 5,208评论 1 17
  • 15、正则 正则就是一个规则,用来处理字符串的规则1、正则匹配编写一个规则,验证某个字符串是否符合这个规则,正则匹...
    萌妹撒阅读 5,378评论 0 1