JavaScript学习笔记

JavaScript学习笔记,第1张

对象

对象分类:

1.内建对象:ES标准中定义的对象,任何ES的实现中都可以使用

2.宿主对象:JS运行环境提供的对象,如BOM、DOM

3.自定义对象

创建对象:

var obj = new Object();

var obj = {};

var obj = {属性名:属性值,属性名:属性值……}

//obj[n] == obj["nihao"]

删除对象属性:

delete obj.name;

in :检查对象中是否含有该属性

属性名 in 对象——返回true或者false

对象是保存在堆内存中的,变量保存的是对象内存地址,若两个变量保存的是同一个地址,一个变,另一个也变:

var obj = new Object();

obj.name = "111";

var obj2 = obj;

obj2.name = "222";

// obj.name = obj2.name = "222" 
var obj3 = new Object();

var obj4 = new Object();

obj3.name = "111";

obj4.name = "111";

// obj3.name != obj4.name

比较的是内存地址 ↑

函数

创建函数对象:

var fun = new Function();
var fun = new Function("console.log('...')");

function fun2(){
	...
}

var fun3 = function(){
	...
};

传递参数过多时,封装到对象中传递

构造函数:调用的时候需要用new

function Person{
	this.name = "hello";
}
var per = new Person();

用 instanceof 检查对象是否是类的实例:

​ 对象 instanceof 构造函数

prototype 原型:

​ 创建的每一个函数,解析器都会添加一个属性prototype,这个对应着原型对象

​ 当作为构造函数的时候,会有一个隐藏属性指向该构造函数的原型对象,可以通过__proto__来访问,同一个类的所有实例都可以访问原型对象,当访问一个对象的属性或者方法时,现在自身对象中寻找,如果没有就会去原型对象中寻找

function Myclass(){

}
Myclass.prototype.a = 123;
var mc = new Myclass();
console.log(mc.a);

Myclass.prototype.sayhello = function(){
	alert("hello");
};

可以使用hasOwnProperty()检查对象自身是否具有该属性

数组

创建数组:

var arr = new Array();

var arr = [];

var arr = new Array(10);//创建长度为10的数组

arr.length获取数组长度,通过arr[arr.length] = ’ '可以增加数组长度

方法:

arr.push("111"):向数组末尾添加一个或多个元素,返回新长度
arr.pop():删除最后一个元素,返回被删除元素
arr.unshift("111"):向开头添加一个或多个元素,返回新长度
arr.shift():删除第一个元素,返回被删除元素
arr.slice(start,end):从开始到结束位置提取元素,并封装到新的数组,前闭后开,负值从后向前计算
arr.splice(start,number):从数组中删除指定元素,第一个是开始位置,第二个是删除数量,返回删除元素,第三个参数及以后可以添加新元素,插入到开始位置上
arr.concat(arr2):连接两个或多个数组,返回新数组,不会影响原数组
arr.join():将数组转换成字符串,可添加参数作为字符串连接符,默认“,”,返回连接后的字符串
arr.reverse():反转数组,修改原数组
arr.sort():数组排序,但对数字排序可能得到错误结果
arr.sort(function(a,b){
	if(a>b){
		return 1;
	}else if(a
arguments

封装实参对象,是一个类数组对象,可以通过索引 *** 作数据,也可以获取长度,所传递的实参都会在arguments中保存,通过arguments.length获取实参长度

Date对象

表示一个时间

创建:

var d = new Date();//封装成当前执行时间

var d2 = new Date("12/03/2021 11:10:03");//月 日 年 时 分 秒
d.getDate():获取当前是几号
d.getDaty():返回星期几,0表示周日
d.getMonth():返回几月,0表示一月,以此类推
d.getFullYear():返回年份
d.getTime():返回时间戳
time = Date.now():返回该行代码执行时的时间戳
Math

不是构造函数,属于工具类不用创建对象,如Math.PI 表示圆周率

方法:

Math.abs():绝对值
Math.ceil():向上取整
Math.floor():向下取整
Math.round():四舍五入
Math.random():生成0-1之间的随机数
生成x-y之间的随机数:Math.round(Math.random()*(y-x)+x)
Math.pow(x,y):返回x的y次方
Math.sqrt(x):返回x的开方
String对象

方法:

str.charAt(x):返回字符串中x位置的字符
str.charCodeAt(x):返回字符串中x位置的字符编码
String.fromCharCode(x):根据字符编码获取字符
str.indexOf(x):检查字符串中是否含有x,返回第一次出现的索引,没找到返回-1,可以指定第二个参数规定开始查找位置
str.lastIndexOf():从后往前找
str.slice(start,end):从开始到结束位置提取元素,并封装到新的数组,前闭后开,负值从后向前计算
str.split(","):将字符串拆分成一个数组
正则表达式

用于定义字符串规则,检查字符串是否符合规则

创建正则表达式对象:

var reg = new RegExp("正则表达式","匹配模式");

var 变量 = /正则表达式/匹配模式

正则表达式方法:

用test()检查字符串是否符合规则,符合返回true

var result = reg.test(str);

匹配模式:i:忽略大小写

​ g:全局模式

eg. var reg = /a|b/; 
	console.log(reg.test("abcds"));//检查字符串中是否有a或b

[ab] == a|b

[^ab] :除了ab以外

方法:

split():传递正则,任意划分字符串为数组
result = str.split(/[a-z]/);

search():搜索字符串中是否有指定内容,只会查找第一个
result = str.research(/a[bef]d/);

match():根据正则,提取指定表达式,结果封装到数组中
result = str.match(/[a-z]/g);//默认找到第一个停止,用全局匹配模式可以匹配到所有

replace(被替换的内容,新内容):默认替换第一个
result = str.replace(/a/gi,"@@@");

var reg = /a{3}/ 指a正好出现3次,量词只对其前面内容作用

reg = /(ab){3}/ : ababab

量词若是{m,n}形式,指出现m到n次

+:至少一次 reg = /ab+c/

*:0个或多个

?:0个或1个

/^a/:是否以a开头

/a$/:是否以a结尾

/./:表示任意字符

\w:任意字母、数字、_

\W:除了字母、数字、_

\d:任意数字

\D:除了数字

\s:空格

\S:除了空格

\b:单词边界

\B:除了单词边界

去除字符串中开头结尾的空格,用“”代替空格:str = str.replace(/^\s*|\s*$/g,"");
eg.电子邮件
任意字母数字下划线    \w{3,}
.任意字母数字下划线    (\.\w+)*
@     @
任意字母数字     [A-z0-9]+
.任意字母(2-5位)     
.任意字母(2-5位)    (\.[A-z]{2,5}){1,2}

var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
var email = "abc@abc.com";
console.log(emailReg.test(email));
DOM

节点:文档节点、元素节点、属性节点、文本节点

节点属性:

nodeNamenodeTypenodeValue
文档#document9null
元素标签名1null
属性属性名2属性值
文本#text3文本内容
在下


事件

用户和浏览器的交互

可以在属性中加入js代码,当事件被触发的时候,代码就会执行:

在下


ondblclick:双击

onclick:单击

onmousemove:鼠标移动

可以为按钮的对应事件绑定处理函数来相应:

在下


文档加载

将js代码写到页面的下部是为了在页面加载完毕之后再执行(中)

onload事件会在页面加载完成之后才触发

为window绑定一个onload事件:

在中
window.onload = function(){
	alert("hello");
};

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/940689.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-17
下一篇2022-05-17

发表评论

登录后才能评论

评论列表(0条)