JavaScript细节解决
sxl不想学习
这个作者很懒,什么都没留下…
展开
-
箭头函数(()=>)
箭头函数的特点:this 是静态的,this始终指向函数声明时所在作用域下的this的值 function getName() { console.log(this.name); } let getName2 = () => { console.log(this.name); } // 设置window对象的name属性 window.name = '石兴丽'; const school = {原创 2022-04-09 14:52:46 · 505 阅读 · 0 评论 -
进程和线程
1.进程程序的一次执行,它占有一片独有的内存空间可以通过windows任务管理器查看进程2.线程是进程内的一个独立执行单元是程序执行的一个完整流程是CPU的最小的调度单元原创 2022-04-09 14:26:18 · 321 阅读 · 0 评论 -
内存溢出和内存泄漏
1.内存溢出一种程序运行出现的错误当程序运行需要的内存超过了剩余的内存时,就出抛出内存溢出的错误2.内存泄露占用的内存没有及时释放内存泄露积累多了就容易导致内存溢出常见的内存泄露:意外的全局变量没有及时清理的计时器或回调函数闭包...原创 2022-04-08 11:29:27 · 205 阅读 · 0 评论 -
闭包(closure)
1.如何产生闭包?当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时,就产生了闭包。2.闭包到底是什么?使用chrome调试查看理解一:闭包是嵌套的内部函数(绝大部分人)理解二:包含被引用变量(函数)的对象(极少数人)注意:闭包存在于嵌套的内部函数中3.产生闭包的条件?函数嵌套内部函数引用了外部函数的数据(变量/函数)...原创 2022-04-08 10:25:17 · 111 阅读 · 0 评论 -
js中this的指向
解析器在调用函数每次都会向函数内部传递进一个隐含的参数,这个隐含的参数就是this,this指向的是一个对象,这个对象我们称为函数执行的上下文对象,根据函数的调用方式的不同,this会指向不同的对象1.以函数的形式调用时, this永远都是window function fun() { console.log(this); //window } fun();2.以方法的形式调用时,this就是调用方法的那个对象 function fun() { c原创 2022-04-08 10:17:32 · 92 阅读 · 0 评论 -
函数(function)
1.代么是函数?实现特定功能的n条语句的封装体只有函数是可以执行的,其它类型的数据不能执行2.为什么要用函数?提高代码复用便于阅读交流3.如何定义函数?函数声明表达式4.如何调用(执行)函数?test():直接调用obj.test():通过对象调用new test( ): new调用test.call/apply(obj):临时让test成为obj的方法进行调用...原创 2022-04-06 11:17:02 · 49 阅读 · 0 评论 -
对象(object)
1.什么是对象?**多个数据的封装体**用来保存多个数据的容器**—个对象代表现实中的一个事物2.为什么要用对象?**统一管理多个数据3.对象的组成*属性:属性名(字符串)和属性值(任意)组成*方法:—种特别的属性(属性值是函数)4.如何访问对象内部数据?**.属性名 有时候不能用**.[‘属性名’] 编码麻烦,能通用什么时候必须使用[‘属性名’]的方式?1.属性名包含特殊字符:- 空格 var p = {} p['content-type'] = 'text/json原创 2022-04-06 10:57:21 · 104 阅读 · 0 评论 -
数据类型判断
typeof:*可以判断: undefined/数值/字符串/布尔值/function*不能凯断: null与object object 与arrayinstanceof: 判断对象的具体类型===:可以判断: undefined, null var a; console.log(a, typeof a, typeof a === 'undefined', a === undefined); //undefined 'undefined' true true cons.原创 2022-04-04 19:21:25 · 423 阅读 · 0 评论 -
json的定义
JSON:JS中的对象只有JS自己认识,其他的语言都不认识;JSON就是-一个特殊格式的字符串,这个字符串可以被任意的语言所识别,并且可以转换为任意语言中的对象,JSON在开发中主要用来数据的交互。JavaScript Object Notation JS对 象表示法JSON和JS对象的格式一 样,只不过JSON字符串中的属性名必须加双引号;其他的和JS语法一致JSON分类:1.对象{}、2.数组[]JSON中允许的值:1.字符串2.数值3.布尔值4.null5.对象6.数组原创 2022-04-04 15:51:07 · 1238 阅读 · 0 评论 -
DOM和BOM
一、DOM,全称Document Object Model文档对象模型。JS中通过DOM来对HTML文档进行操作。只要理解了DOM就可以随心所欲的操作WEB页面。一文档,表示的就是整个的HTML网页文档一对象,表示将网页中的每一个部分都转换为了一个对象。一模型,使用模型来表示对象之间的关系,这样方便我们获取对象。二、BOM,全称Browser Object Model浏览器对象模型。...原创 2022-04-02 14:17:31 · 297 阅读 · 0 评论 -
node节点
节点:Node——构成HTML文档最基本的单元。常用节点分为四类:文档节点:整个HTML文档元素节点:HTML文档中的HTML标签属性节点:元素的属性文本节点:HTML标签中的文本内容原创 2022-03-28 13:52:26 · 260 阅读 · 0 评论 -
数组去重的例子
var arr = [1, 2, 2, 3, 2, 1, 3, 4, 2, 5] // 获取数组中的每一个元素 for (var i = 0; i < arr.length; i++) { console.log(arr[i]); // 获取当前元素后的所有元素 for (var j = i + 1; j < arr.length; j++) { console.log('-------' + arr[j..原创 2022-03-27 11:59:41 · 134 阅读 · 0 评论 -
slice和splice
slice:该方法不会改变元素数组,而是将截取到的元素封装到一个新数组中返回参数:截取开始的位置的索引,包含开始索引;截取结束的位置的索引,不包含结束索引;-第二个参数可以省略不写,此时会截取从开始索引往后的所有元素-索引可以传递一个负值,如果传递一个主值,则从后往前计算-1倒数第一个-2倒数第二个 var arr = ['孙悟空', '沙和尚', '猪八戒', '唐僧', '白骨精'] var result = arr.slice(0, 2); //孙悟空,沙和尚原创 2022-03-27 11:34:54 · 158 阅读 · 0 评论 -
for...in枚举对象中的属性
var obj = { name: 'sxl', age: 19, gender: '女', address: '贵州' } for (var n in obj) { console.log('属性名:' + n); console.log('属性名:' + obj[n]); }原创 2022-03-26 10:15:37 · 180 阅读 · 0 评论 -
函数与方法(method)
函数也可以称为对象的属性,如果一个函数作为一个对象的属性保存,那么我们称这个函数时这个对象的方法。调用这个函数就说调用对象的方法(method)。但是它只是名称上的区别没有其他的区别。 var fun3 = function() { console.log('你好啊'); } // 调用函数 fun3(); var obj = new Object(); obj.name = 'sxl'; obj.age = 18; obj.sa.原创 2022-03-26 10:02:39 · 389 阅读 · 0 评论 -
基本数据类型和引用数据类型
JS中的变量都是保存到栈内存中的,基本数据类型(String、Number、Boolean、Null、Undefined)的值直接在栈内存中存储。值与值之间是独立存在,修改一个变量不会影响其他的变量。 var a = 12; var b = a; a++; console.log('a=' + a); //13 console.log('b=' + b); //12引用数据类型(对象)是保存到堆内存中的,每创建一个新的对象,就会在堆内存中开辟出一个新的空间,而原创 2022-03-25 15:19:05 · 115 阅读 · 0 评论 -
编写程序,由键盘输入三个整数分别存入变量num1,num2,num3,对他们进行排序,并且从小到大输出。
var num1 = +prompt('请输入数字1:'); var num2 = +prompt('请输入数字2:'); var num3 = +prompt('请输入数字3:'); //prompt()返回的值类型是string,用“+”将num先转换成number再比较 if (num1 < num2 && num1 < num3) { // num1最小 if (num2 < num3) { .原创 2022-03-24 11:13:36 · 1985 阅读 · 0 评论 -
JS中=,==,===三种等号的区别
= 是赋值操作,a = 10== 先转换类型再比较 var a = 10; console.log(a == 8); //false console.log(a == 10); //true console.log(a == '10'); //true '10'先转换成number再比较 console.log(true == '1'); //true 都转换为number console.log(null == 0); //fa原创 2022-03-21 11:54:18 · 232 阅读 · 0 评论 -
promise执行问题
// 1,2,4,3 // 构造函数同步执行 const promise = new Promise((resolve, reject) => { console.log(1); //第一执行 resolve(); console.log(2); //第二执行 }) // .then()异步执行 promise.then(() => { console.log(3); //最后执行.原创 2022-03-20 18:56:11 · 50 阅读 · 0 评论 -
var,let,const的特点
一、var1.声明提升。2.变量覆盖。3.没有块级作用域。二、let1.有块级作用域的概念。2.不存在变量提升。3.不存在全局作用域的概念。4.同一块作用域中不允许重复声明。三、const1.const声明智慧必须赋值 否则就报错。2.定义的值不能修改,否则报错。3.支持let的其他属性。...原创 2022-03-20 18:48:32 · 46 阅读 · 0 评论 -
null和undefined的区别
null 这个值专门用来表示一个为空的对象使用typeof检查一个null值时,会返回objectundefined(未定义)类型的值只有一个,就是undef当一个声明变量,但是并不给变量赋值时,它的值就是undefined使用typeof检查一个undefined值时,会返回undefined...原创 2022-03-20 11:56:05 · 380 阅读 · 0 评论 -
标识符的命名
-在]S中所有的可以由我们自主命名的都可以称为是标识符-例如:变量名、函数名、属性名都属于标识符-命名一个标识符时需要遵守如下的规则:1.标识符中可以含有字母、数字、_、$2.标识符不能以数字开头3.标识符不能是ES中的关键字或保留字...原创 2022-03-20 11:02:29 · 249 阅读 · 0 评论 -
undefined和is not defined区别
undefined定义:undefined是javascript的一种基本数据类型,变量未赋值或者函数没有返回值时返回。xxx is not defined是一种错误类型,其完整形式是:Uncaught ReferenceError: xxx is not defined(未捕获的引用错误),对象表明一个不存在的变量被引用undefined和is not defined的本质区别在于:变量是否被定义。...原创 2022-03-20 10:51:58 · 1022 阅读 · 0 评论