今天感觉自己的js基础方面确实有一些薄弱所以回来重新学习一下并记录一下(其中再附上我自己的理解)
1.js的数据类型
那些基本的诗句类型就不说了,这次主要记录一下数组和对象:
var cars = ['BMW','BENS'] //数组
var cars = {
firstName: 'john',
lastName: 'tom'
} //对象
同时如果你想确定是什么数据类型直接用typeof方法就可以了
其中访问对象属性我一直以为只有cars.firstName这一种形式,今天查阅文档发现还可以这么写cars["firstName"].
2.js的几个常用的事件
首先点击事件就不说了,太基础了,其次我认为比较常用的是onmouseover()--鼠标指针移动到指定元素上的时候出发,onmouseout()--鼠标指针移动出指定元素的时候触发,onkeydown()--用户按下键盘按键的时候触发。
3.js的几个常用的字符串的方法
charAt() --- 返回指定索引位置的字符
var str = "nihao";
var n = str.charAt(2);
console.log(2); //h
concat() --- 链接两个或更多的字符串,并返回新的字符串
var str1 = 'ni';
var str2 = 'hao';
var n = str1.concat(str2);
console.log(n) //ni hao
includes() --- 查找字符串中是否包含指定的子字符串
var str = 'nihao';
var n = str.includes('ni');
console.log(n); //true
match() --- 查找找到一个或者多个正则表达式的匹配(模糊查询)
var str = "我爱中国,我爱黑龙江";
var n = str.match('爱');
console.log(n) // 爱,爱
replace() --- 在字符串中查找匹配的子串,并替换与正则表达式匹配的子串。
var str = "我爱南京,我爱南京";
var n = str.replace('南京','黑龙江');
console.log(n) // 我爱黑龙江,我爱南京
所以需要注意的是只能进行一次替换,并且是第一个,需要替换所有匹配到的子串就要使用replaceAll()这个方法,使用方法和replace()是一样的,我这里就不多做赘述了。
slice() --- 提取字符串的片段,返回新的字符串
var str = "你好世界";
var n = str.slice(1,3);
console.log(n); //好世
toString() --- 返回一个string对象的值
var str = "你好世界";
var n = str.toString();
console.log(n); // 你好世界
4.使用typeof对类型进行检测的时候注意检测null的时候返回的是object,检测一个没有值得变量会返回undefined
5.下面重点说一下js中的this指向问题(重点),我就是总搞不清this指向的问题
-在方法中,this表示该方法所属的对象。
-如果单独使用,this表示全局对象。
-在函数中,this表示全局对象。
-在事件中,this表示接收事件的元素
//在方法中this指向的例子
var person = {
firstName: '哈利',
lastName: '波特',
fullName: function() {
return this..firstName + " " + this.lastNamel
}
}
//其中的this就是指向方法里边的firstName和lastName
//单独使用this的时候this就指向了全局对象了
var x = this
//在函数中使用this的时候
function app() {
return this;
}
//这个时候this就指向了全局对象[object Window]
//事件中的this
<div onclick="this.style.display='none'"></div>
//这个时候this就指向了这个div本身