
JavaScript
文章平均质量分 85
从基础出发,不断探索,经过实战一步步走进JavaScript的世界,分享面试题和经典题,并配有图解,保证清楚明白,绝不马虎,从入门到精通。
小婵婵不怕鬼
努力学好前端
展开
-
javascript中数组的方法(最全)
他们都接收两个参数,第一个参数是每一项调用的函数,函数接受四个参数分别是初始值,当前值,索引值,和当前数组,函数需要返回一个值,这个值会在下一次迭代中作为初始值。第二个参数是迭代初始值,参数可选,如果缺省,初始值为数组第一项,从数组第一个项开始叠加,缺省参数要比正常传值少一次运算。当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。of循环遍历,唯一区别:keys()是对键名的遍历、values()对键值的遍历、entries()是对键值对的遍历。原创 2023-01-07 03:04:31 · 1432 阅读 · 0 评论 -
JavaScript字符串的方法(最全)
需要注意的是:JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的是全新的字符串,而不是修改原始字符串。replaceAll() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串,该函数会替换所有匹配到的子字符串。slice(start, end) 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。要抽取的片断的起始下标,第一个字符位置为 0。原创 2023-01-05 22:51:31 · 1144 阅读 · 0 评论 -
JS高级学习记录4,进程与线程,浏览器内核,定时器引发的思考,JS是单线程的,事件循环模型,Web Workers
dom/css模块负责dom/css在内存中的相关处理。html,css文档解析模块负责页面文本的解析。网络请求模块负责服务器请求(常规/Ajax)布局和渲染模块负责页面的布局和效果的绘制。布局和渲染模块负责页面的布局和效果的绘制。定时器模块负责定时器的管理。事件响应模块负责事件的管理。...原创 2022-07-16 22:12:41 · 122 阅读 · 0 评论 -
JS高级学习记录,作用域与作用域链,作用域与执行上下文的区别,闭包,闭包的作用、应用及缺点,闭包面试题图解,对象创建模式,继承模式
具有特定功能的js文件将所有的数据和功能都封装在一个函数内部(私有的)只向外暴露一个包信n个方法的对象或函数模块的使用者,只需要通过模块暴露的对象调用方法来实现对应的功能方式一//私有数据varmsg='Myatguigu'//操作数据的函数functiondoSomething(){console.log('doOtherthing()'+msg.toLowerCase())}//向外暴露对象(给外部使用的方法)return{...原创 2022-07-15 22:25:46 · 102 阅读 · 0 评论 -
JS高级学习记录2,原型(prototype),显式原型与隐式原型图解,原型链图解,instanceof,变量提升与函数提升,变量提升和函数提升是如何产生的?执行上下文栈,及其相关测试题
代码】JS高级学习记录2,原型(prototype),显式原型与隐式原型图解,原型链图解,instanceof,变量提升与函数提升,变量提升和函数提升是如何产生的?执行上下文栈,及其相关测试题。原创 2022-07-15 13:30:12 · 159 阅读 · 0 评论 -
JS高级学习记录1,数据类型的分类、判断及相关问题,数据、变量、内存以及三者之间的关系,关于赋值和内存,引用变量赋值,数据传递的问题,内存管理,对象,函数,回调函数,IIFE,函数中的this。
什么时候给变量赋值为null呢?初始赋值, 表明将要赋值为对象结束前, 让对象成为垃圾对象(被垃圾回收器回收)严格区别变量类型与数据类型?数据的类型基本类型对象类型变量的类型(变量内存值的类型)基本类型: 保存就是基本类型的数据引用类型: 保存的是地址值数据、变量、内存什么是数据?存储在内存中代表特定信息的’东东’, 本质上是0101…数据的特点: 可传递, 可运算一切皆数据内存中所有操作的目标: 数据算术运算逻辑运算赋值运行函数什么是内原创 2022-07-14 01:13:01 · 100 阅读 · 0 评论 -
学习记录9.2,类的操作,定义几个函数,用来向一个元素中添加、删除、检查、切换指定的class属性,JSON,JSON字符串与JS中的对象相互转换
通过style属性来修改元素的样式,每修改一个样式,浏览器就会重新渲染一次页面,这样执行的性能是比较差的,而且这种形式当我们要修改多个样式时也不太方便。可以通过修改元素的class属性来间接的修改样式。这样只需要一次即可修改多个样式,浏览器只需要重新渲染一次,这种方式可以让表现和行为进一步的分离。如果想要保存b1的效果并且加上b2的效果,则可以这样写,(b2前有个空格)定义几个函数,用来向一个元素中添加、删除、检查、切换指定的class属性。参数:obj 要添加class属性的元素;cn 要添加的cla原创 2022-07-13 03:40:15 · 143 阅读 · 0 评论 -
JS学习记录9,BOM对象,利用Navigator识别各大浏览器,History,Location,Window,切换图片练习,定时器的应用,轮播图
这些BOM对象在浏览器中都是作为window对象的属性保存的,可以通过window对象来使用,也可以直接使用。(用时小写)由于历史原因,Navigator对象中的大部分属性都已经不能帮助识别浏览器了,一般只会使用userAgent来判断浏览器的信息。注:在IE11中已经将微软和IE相关的标识都已经去除了,所以基本已经不能通过UserAgent来识别一个浏览器是否是IE了,可以通过浏览器中特有的对象来判断浏览器的信息。比如:ActiveXObject注意!!现在该方法已失效!!!以下是最新的方式:His原创 2022-07-13 02:03:05 · 247 阅读 · 0 评论 -
JS学习记录8,事件对象,事件的冒泡,事件的绑定,滚轮的事件,键盘的事件,获取鼠标坐标练习,使div可以跟随鼠标移动练习,拖拽练习,使文本框中不能有数字,div根据方向键移动,并解决事件对象兼容性问题
当事件的响应被触发时,浏览器每次都会将一个事件对象作为实参传递给响应函数,在事件对象中封装了当前事件相关的一切信息,比如:鼠标的坐标,键盘哪个按键被按下,鼠标滚轮滚动的方向等。clientX可以获取鼠标指针的水平坐标clientY可以获取鼠标指针的垂直坐标获取鼠标在div里的坐标:效果:在IE8中,事件函数被触发时,浏览器不会传递事件对象,在IE8及以下浏览器中,是将对象作为window对象的属性保存的。即:应该改为:但是该方式火狐不兼容,所以应该这么改:也可以使div可以跟随鼠标移动原创 2022-07-11 20:35:15 · 236 阅读 · 0 评论 -
JS学习记录7.2,使用DOM操作CSS,style属性,构造一个函数用来获取指定元素的当前样式并且IE8和普通浏览器都支持,以及其他样式相关的属性,是否读取完毕协议练习
注意:如果CSS样式名中含有-,这种名称在JS中是不合法的,需要这种样式名修改成驼峰命名法,去掉-,然后将-后的字母大写。通过style属性设置的样式都是内联样式,而内联样式有较高的优先级,所以通过JS修改的样式往往会立即显示,但是如果在样式中写了!important,则此时样式会有最高的优先级,即使通过JS也不能覆盖该样式,此时将会导致JS修改样式失效,所以尽量不要为样式添加!important。通过JS读取元素的样式 通过style属性设置和读取到的都是内联样式,所以无法读取样式表中的样式。获取元原创 2022-07-10 23:35:45 · 205 阅读 · 0 评论 -
JS学习记录7, DOM增删改,员工添加删除功能的两种方式
createElement()可以用于创建一个元素节点对象,它需要一个标签名作为参数,将会根据该标签名创建元素节点对象,并将创建好的对象作为返回值返回。createTextNode()可以用来创建一个文本节点对象,需要将一个文本内容作为参数,将会根据该内容创建文本节点,并将新的节点返回。给两个节点设置关系,将gzText设为li的子节点。appendChild()向一个父节点中添加一个新的子节点,用法:父节点.appendChild(字节点)再按照此方法将li设置为ul的字节点,这样新增的广州就成功原创 2022-07-10 19:47:38 · 309 阅读 · 0 评论 -
JS学习记录6.2/DOM/节点Node/事件/获取元素节点/点击按钮切换图片练习/获取元素结点的子节点/获取父节点和兄弟节点/全选全不选练习/查询网页中的标签
全称Document Object Model文档对象模型,在JS中通过DOM来对HTML文档进行操作,只要理解了DOM就可以随心所欲的操作WEB页面。文档:文档表示的就是整个HTML网页文档对象:对象表示将网页中的每一个部分都转换为了一个对象。模型:使用模型来表示对象之间的关系,这样方便我们获得对象。是构成网页的最基本的组成部分,网页中的每一部分都可以称为是一个节点。文档节点:整个HTML文档元素节点:HTML文档中的HTML标签属性节点:元素的属性文本节点:HTML标签中的文本内容节点的属原创 2022-07-09 23:48:38 · 360 阅读 · 0 评论 -
JS学习记录6/正则表达式/正则表达式的方法/ 字符串和正则表达式相关的方法/量词/特殊字符的意义/电子邮件的正则表达式
用于定义一些字符串规则,计算可以根据正则表达式来检查一个字符串是否符合规则,将字符串中符合规则的内容提取出来。可以为一个正则表达式设置多个匹配模式,且顺序无所谓。创建正则表达式的对象(更灵活):匹配模式:可以是i(忽略大小写),g(全局匹配模式)检查字符串是否含有a,忽略大小写 使用字面量来创建正则表达式(更简单): 1、使用|表示或者的意思2、[]里的内容也是或的关系3、[a-z]表示任意得小写,[A-Z]任意的大写,[A-z]任意字母,[0-9]任意数字4、[^ ]表示除了这里面原创 2022-07-09 16:40:27 · 154 阅读 · 0 评论 -
JS学习记录5/数组/push()/pop()/unshift()/shift()/遍历/打印出满18岁的人/foEach()/去除重复元素/从小到大排序/Date对象/Math/包装类/字符串的方法
数组(Array)数组也是一个对象,它和普通对象功能类似,也是用来存储一些值的,不同的是普通对象是使用字符串作为属性名的,而数组是使用数字来作为索引操作元素。索引:从0开始的整数就是索引数组存储性能比普通对象更好,在开发中我们经常使用数组来存储一些数据创建数组对象 向数组中添加元素 读取数组中的元素 如果读取不存在的索引,则会返回undefined。获取数组的长度(元素的个数):对于非连续的数组,使用length会获取到数组的最大索引+1。修改length:如果修改的length大于原创 2022-07-09 00:53:30 · 235 阅读 · 0 评论 -
JS学习记录4.2/函数/构造函数/调用函数/形参和实参/作用域/声明提前/this的情况/原型对象/toString()/垃圾回收
函数 function:函数也是一个对象,函数中可以封装一些功能(代码),在需要时可以执行这些功能(代码),函数中保存一些代码,在需要时调用。创建一个函数对象:当使用typeof检查一个函数对象时会返回function。可以将要封装的代码以字符串的形式传递给构造函数,封装到函数中的代码不会立即执行,函数中的代码会在函数调用时执行。语法:当调用函数时,函数中封装的代码会按照顺序执行。在实际开发中,很少用构造函数来创建一个函数对象,而是使用函数声明来创建函数。语法:例:使用函数表达式来创建一个函数原创 2022-07-07 23:47:19 · 150 阅读 · 0 评论 -
JS学习记录4/对象的创建/基本数据类型和引用数据类型的不同/对象字面量
基本数据类型的不足:基本数据类型都是单一的值,值和值之间没有任何的联系,所创建的变量都是独立的,不能成为一个整体。对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。对象的分类:1、内建对象,由ES标准中定义的对象,在任何的ES的实现中都可以使用。2、宿主对象,由ES的运行环境提供的对象,目前来讲主要指由浏览器提供的对象。比如 BOM(浏览器对象模型)DOM(文档对象模型)3、自定义对象,由开发人员自己创建的对象。创建对象:使用new关键字调用的函数,是构造函数construct原创 2022-07-07 15:02:21 · 148 阅读 · 0 评论 -
JS学习记录3/if语句/用if语句给三个数排序/switch语句/while循环/输入本金、年利率和最后总金求年数/do···while循环/for语句/for语句练习/break/continue
代码块程序是由一条一条语句构成的,语句是按照自上向下的顺序一条一条执行的,在JS中可以使用{}为语句进行分组,同一个{}中的语句我们称为是一组语句,它们要么都执行,要么都不执行,一个{}中的语句我们也称为叫一个代码块,在代码块后面不用编写;了。JS中的代码块只具有分组作用,没有其他的用途,代码块内部的内容在外部是完全可见的。流程控制语句流程控制语句可以控制程序执行流程,使程序可以根据一定的条件来选择执行。语句的分类:1、条件判断语句2、条件分支语句3、循环语句条件判断语句:可以在执行某段代码之原创 2022-07-07 00:21:23 · 419 阅读 · 0 评论 -
JS学习记录2/一元运算符/逻辑运算符/赋值运算符/关系运算符/条件运算符/逗号运算符/运算符的优先级
一元运算符,只需要一个操作数。“+”,正号不会对数字产生任何影响“-”,负号对数字进行符号取反注意点:1、对于非number会先将其转换成number再取反。2、可以对一个其他的数据类型使用+,来将其转换成Number,它的原理和Number()函数原理一样。自增++:通过自增可以使变量在自身的基础上增加1,对于一个变量自增之后,原变量的值会立即自增1。自增分为两种,后++和1前++都会立即使原变量的值自增1,不同的是a++ 和 ++a的值不同。a++的值等于原变量的值(自增前的值)++a等原创 2022-07-05 20:30:15 · 192 阅读 · 0 评论 -
JS学习记录1/js代码编写位置/JS注释/JS编写注意点/字面量/变量/标识符/数据类型/强制类型转换/运算符
一个完整的JavaScript实现包含三个部分:ECMAScript、DOM和BOM。ECMAScript是JavaScript的标准。JS代码需要写在script标签中。alert(),控制浏览器弹出一个警告。document.write(),作用是向body里输出一个内容。console.log向控制台输出一个内容。可以将js代码编写到标签的onclick属性中。例:可以将js代码写在超链接的属性中,这样当点击超链接时执行js代码。例:虽然有这两种方式,但是他们属于结构性为耦合,不方便维原创 2022-07-05 03:45:12 · 270 阅读 · 0 评论