JavaScript基础知识总结

1、JavaScript允许对任意数据类型做比较
2、NaN与所有其他值都不相等,包括自己
3、JavaScript对象的键都是字符串类型

字符串

4、字符串是不可变的,如果对字符串的某个索引赋值,不会有错误,但是也没有效果
5、字符串的常用方法:调用这些方法不会改变原有字符串的内容,而是返回一个新的字符串
toUpperCase():把一个字符串全部变为大写
toLowerCase():把一个字符串全部变为小写
indexOf():搜索指定字符串出现的位置
substring():返回指定索引间的子串
split():切分字符串
6、直接给数组的length赋一个新值会导致数组发生变化;
如果通过索引赋值时,索引超过了范围,同样会引起数组发生变化

数组

7、数组的常用方法:
indexOf:搜索指定元素的位置

var arr = [1,3,5,7,9];
arr.indexOf(5);//2
arr.indexOf(2);//-1

slice():截取数组的部分元素,返回的是一个新的数组
如果不给slice传参数,它会从头到尾截取所有元素,相当于复制了一个新的数组
push():向数组的末尾添加元素
pop():把数组的最后一个元素删掉
unshift():向数组的头部添加元素
shift():删掉数组的第一个元素
sort():对数组进行排序
reverse():反转数组
splice():从指定位置删除元素,返回被删除的元素组成的数组
concat():连接两个数组,返回一个新的数组,没有修改当前数组
join():把数组的每个元素都用指定的字符连接起来,返回连接后的字符串

var arr = [1,2,3];
arr.join('-');//1-2-3

对象

1、对象是动态类型,可以自由的添加和删除对象的属性

var person = {
	name:'kkk',
}
person.age = 18;//新增一个属性age
person['sex']='女';//新增一个属性
delete person.age;//删除一个属性

2、检测对象中是否拥有某一属性,使用in操作符,如果判断一个属性是否存在,使用in,但是这个属性不一定是该对象的,有可能是该对象继承的属性

'name' in person;//true

判断一个属性是否是某对象自身拥有的,而不是继承的,使用hasOwnProperty()

person.hasOwnProperty('name');//true

3、JavaScript把null、undefined、0、NaN、’ '视为false

循环

for…in遍历对象的属性
while循环:在已知循环的初始和结束条件时非常有用
for…of和for…in的区别???

  • 具有iterable类型的集合可以通过for…of循环遍历,for…in是采用下标进行循环遍历的。
  • 可以自己给无法使用for…of遍历的数据结构增加iterable
var obj={'a':1,'b':2,'d':3}

obj[Symbol.iterator] = function* iterEntries() {
    let keys = Object.keys(this);
    for (let i = 0; i < keys.length; i++) {
        let key = keys[i];
        yield [key, obj[key]];
    }
}
for(var o of obj){
    console.log(o);
}

函数

1、arguments:只在函数内部起作用,指向当前函数传入的参数,类似一个数组,但不是数组。
2、rest参数:rest参数作为定义函数的最后一个参数,前面用…标识(function(a,b,…rest){}),用来接收多余的参数。

变量提升

3、JavaScript函数会先扫描整个函数体的语句,把所有申明的变量提升到函数顶部,但是,JavaScript引擎只是自动提升了变量的声明,并不会提升变量的赋值
4、全局变量会绑定到window上,不同的JavaScript文件如果使用了相同的全局变量,或者定义了相同的顶层函数,都会造成命名冲突。
5、const和let具有块级作用域
6、在一个对象中绑定函数,称为这个对象的方法。在一个方法的内部,this始终指向当前对象。如果单独调用函数,函数的this指向全局对象,就是window。

高阶函数

1、map():
map()方法定义在JavaScript的Array中,有一种循环遍历数组元素进行操作的感觉。类似于forEach()方法,但是map方法返回一个新的数组,而forEach()方法不会返回新的数组。
在这里插入图片描述
2、reduce():
reduce()方法是定义在JavaScript的Array中,这个函数必须传两个参数,reduce()是把结果和序列的下一个元素做累积计算.
在这里插入图片描述
3、filter():
用于把数组的某些元素过滤掉,filter接收一个函数,filter()把传入的函数依次作用于每个元素,根据返回值是true和false决定保留与否。

  • 可以利用filter()除去数组中重复的元素
    去除重复元素是根据indexOf总是返回第一个元素的位置,后续的重复元素的位置与indexOf返回的位置不相等,因此被过滤。
    在这里插入图片描述
    4、every():
    every()可以判断数组的所有元素是否满足测试条件。
    在这里插入图片描述
    5、find():
    find()方法用于查找符合条件的第一个元素,如果找到,返回这个元素,否则,返回undefined。

6、findindex():
findindex()方法查找符合条件的第一个元素,如果找到,返回这个元素的索引,如果没有找到,返回-1。

闭包

在一个函数中又定义了一个函数,并且内部函数可以引用外部函数的参数和局部变量,当外部函数返回内部函数时,相关参数和变量都保存在返回的函数中。

this指向

1、普通函数中

  • this总是指向它的直接调用者,例如obj.function(),那么function中的this就是指向obj。
  • 在非严格模式下,没有直接调用者,this指向window。
  • 在严格模式下,没有直接调用者,this指向undefined。

2、箭头函数中

  • 箭头函数没有自己的this,它的this是继承来的,默认指向在定义它时所处的对象。

标准对象

Date
  • 获取当前系统时间
var dateNow = new Date();
  • 获取当前时间戳
//1、
Date.now();
//2、
new Date().getTime()
RegExp正则表达式

\d可以匹配一个数字;
\w可以匹配一个字母或数字;
.可以匹配任意一个字符;
*可以表示任意个字符;
+可以表示至少一个字符;
?可以表示0或1个字符;
{n}可以表示n个字符…

JSON

1、JSON的字符串规定必须使用双引号,object的键也必须使用双引号。
2、JSON.stringify():将对象序列转换为JSON格式的字符串
3、JSON.parse():将JSON格式的字符串转换为JavaScript对象。

浏览器对象

window
1、window对象可以表示浏览器窗口
2、window对象的属性(大小根据浏览器的缩放会发生改变):

  • innerWidth和innerHeight:可以获取浏览器窗口的内部宽度和高度,(内部宽度指除去菜单栏、工具栏、边框等占位元素后)
  • outerWidth和outerHeight:获取浏览器窗口的整个宽高。

screen
1、screen对象表示屏幕的信息
2、screen.width和screen.height:屏幕的宽度和高度,以像素为单位,不会根据浏览器的缩放而发生改变。
document
document对象表示当前页面;HTML在浏览器中以DOM形式表示树形结构,document对象就是整个DOM树的根节点。

  • getElementById():按ID获得一个DOM节点
  • getElementByTagName():按Tag名称获得一组DOM节点
  • createElement():创建一个空节点

history
history对象的back()forward(),相当于用户点击了浏览器的后退或前进按钮。

操作DOM

1、innerHTML属性修改节点文本

document.getElementById("pid").innerHTML="哈哈哈";

2、style属性对应所有的css

document.getElementById("pid").style.color="#fff";
document.getElementById("pid").style["font-weight"]="bold";
document.getElementById("pid").style.fontweight="bold";

3、appendChild属性把一个子节点添加到父结点的最后一个子节点之后
4、parentElement.insertBefore(newElement,referenceElement)将子节点添加到referenceElement之前。
5、children属性获取父结点的所有子节点
6、parentElement属性获取子节点的父元素
7、removeChild删除DOM节点,首先获得该节点本身以及它的父结点,然后调用父结点的把自己删掉。

操作表单

1、value属性获得用户输入的值。
2、checked属性返回单选框的复选框的选中状态。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值