![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
js基础
文章平均质量分 78
关于JavaScript的一些基础知识点的整理总结
闲岁️
这个作者很懒,什么都没留下…
展开
-
JavaScript函数之闭包
闭包的概念闭包是指有权访问另一个函数作用域中的变量的函数。创建闭包的最常见的方式就是在一个函数内创建另一个函数,通过另一个函数访问这个函数的局部变量。闭包简单举例 function fn() { return function () {}; } var f = fn(); f(); var obj = (function () { return { abc: functio原创 2020-11-16 20:14:16 · 183 阅读 · 0 评论 -
JavaScript中各种情况下this的指向问题(全面总结篇)
一、this–>undefinedES6的严格模式中,如果调用函数中的this或者顶层this将会指向undefined。<script type="module"> function fn(){ console.log(this); } fn(); //undefined</script><script type="module"> console.log(this); //undefi原创 2020-11-14 21:11:59 · 830 阅读 · 0 评论 -
对象深复制的方法之完整版(带注释)
声明:本方法几乎考虑到了所有类型的对象,比如函数、日期、正则、Set、Map、DOM元素等,如有不足敬请指出。首先写好一个包含各种类型数据的对象,如下: var d = Symbol(); var e = Symbol(); var ss = { a: 1 }; var obj = { a: 1, b: 2, c: [1, 2, 3], zz: new Set([1, 2, ss]),原创 2020-11-13 21:43:47 · 379 阅读 · 1 评论 -
JavaScript中获取对象属性的几种方法举例及其说明
首先我们有这样一个对象: var o = {}; var c = Symbol(); Object.defineProperties(o, { a: { value: 1, }, b: { enumerable: true, configurable: true, value: 5, }, [c]: {原创 2020-11-12 22:19:52 · 7467 阅读 · 0 评论 -
对象设置属性的方法defineProperty和defineProperties
一、defineProperty方法基础语法Object.defineProperty(对象,“属性名”,描述对象);描述对象中的属性及其各自的作用:属性名作用configurable是否可以删除该属性或者修改该属性的定义描述对象enumerable该属性是否可枚举writable该属性是否可修改get获取该属性值时调用该函数set设置该属性值时调用该函数value该属性的值或者方法注意:默认configurable,enume原创 2020-11-12 21:56:43 · 6354 阅读 · 1 评论 -
使用toString()和valueOf()获取值时的区别
一般我们都是使用toString()来将数据转换为字符串的,但其实toString()和valueOf()都是用来获取值的,那它们有什么区别呢?我们通过下面这个例子来理解一下。首先,有下面这样一个对象o: var o = { a: 1, valueOf: function () { console.log("aaa"); return ++this.a; }, toString: funct原创 2020-11-12 21:16:08 · 158 阅读 · 0 评论 -
复制对象之Object.assign()
基础语法Object.assign(目标对象,要复制的对象1,要复制的对象2…);执行完成后返回目标对象var o = {a : 1};var o1 = Object.assign({}, o);console.log(o1); // {a: 1}特点1、多个对象复制时,相同属性后面的会覆盖前面的。var o = {a : 1};var o1 = { b: 2 };var o2 = { c: 3 };var o3 = { a: 5, c: 6 };var obj = {};Obj原创 2020-11-12 20:50:22 · 411 阅读 · 0 评论 -
复制对象的几种方法以及各自的特征
方法描述特征浅复制深复制for…in对象遍历复制不修改引用关系,仅能复制字符属性,Symbol不能复制,不可枚举属性不能复制,原型链属性不能复制√JSON.parse(JSON.stringify(obj))转换复制修改引用关系,仅能复制字符属性,Symbol不能复制,不可枚举属性不能复制,原型链属性不能复制,函数和其他类型也不能复制√{…}解构赋值复制法修改引用关系,Symbol和函数都能复制,不可枚举属性和原型链属性都不能复制√Obje...原创 2020-11-12 20:33:14 · 949 阅读 · 0 评论 -
js运算符之逻辑运算符
逻辑运算符包括&&(逻辑与)、||(逻辑或)、!(逻辑非)。下面的运算规则中,true和false都是相应位置的数据转换为布尔值后的结果。1、&& 的运算规则如下: true && true = true 返回最后一个值 true && false = false 返回false对应的值 false && true = false 返回false对应的值 false &&原创 2020-11-04 23:29:43 · 390 阅读 · 0 评论 -
js运算符之关系运算符
关系运算符包括> 、>=、<、<=、==、 ===,运算结果返回一个布尔值。数值比较举例: var a = 3; var b = 4; console.log(a > b); //false原创 2020-11-04 23:10:01 · 698 阅读 · 0 评论 -
js运算符之一元运算符
一元运算符 var a = 2; a++; //它就等价于a=a+1;先返回结果后运算上面的语句块就可以写成下面的语句块,它们是等价的。 var a = 2; a = a + 1;同理,++a; 就相当于 a=a+1; 也是先运算后返回结果。注意:无论是 ++a / a++ 还是 --a / a-- 全部是用数值运算。 var a = "5"; a++; console.log(a); //6 var a = "5"; a += 1; console.log(a); //"原创 2020-11-04 14:36:56 · 486 阅读 · 0 评论 -
js运算符之赋值运算符
赋值运算符当看到一个等号时,就是表示将等号右侧的结果赋值给等号左侧,并且返回一个值。 var a = 1; a = a + 1; //2 var a = 1; console.log((a = a + 1)); //2 var a = 1; if ((a = a + 1)) { console.log(a); //2 } var a = 5; while ((a = a - 1)) { //执行4次,按顺序打印4321 console.log(a); }除原创 2020-11-04 14:35:17 · 584 阅读 · 0 评论 -
js运算符之算术运算符
数值的+ , - , * , / , %(取模)和数学运算完全相同注意:小数点运算时会产生误差 var a = 0.1; var b = 0.2; var s = a + b; console.log(s); //0.30000000000000004不同数据类型之间的 + 运算 var a = "4"; var b = 1; //"41" var b = true; //"4true"原创 2020-11-02 14:41:37 · 338 阅读 · 0 评论 -
js数据类型转换(三、各种数据类型转换为布尔型)
""、0、undefined、null、false、NaN 转换为布尔值后都是false;除此之外转换为布尔值后都是true。 var a = ""; //false var a = 0; //false var a = undefined; //false var a = null; //false var a = NaN; //false var a = " "; //true 空格不是空字符串 a原创 2020-11-02 09:07:07 · 3803 阅读 · 0 评论 -
js数据类型转换(二、各种数据类型转换为字符型)
数值转换为字符型 var a = 5; var a = 255; var a = 2.5555; a = String(a); //强制转换为字符串 a = a.toString(); a = a.toString(16); a = a.toString(36); //将数值按照指定进制类型转换为字符串,进制2~36 a = a.toFixed(); a = a.toFixed(2); //保留小数点原创 2020-11-02 09:06:38 · 719 阅读 · 1 评论 -
js数据类型转换(一、各种数据类型转换为数值型)
字符型转换为数值型NaN的意思是非数值,它的数据类型是数值类型。 var a = "a"; //字符串只要含有非数字就会转换为NaN,否则转换为数值 var a="101001"; var a="4.15a"; a = Number(a); //强制转换 a = parseInt(a); //转换为整型数值,从开始向后转换遇到字符停止(如果开始是数值就可以转换,比如parseInt("a4")的结果就是NaN) a =原创 2020-11-02 09:06:01 · 2264 阅读 · 0 评论 -
js的基本六种数据类型及判断方法
基本数据类型js中的基本数据类型有六种:数值类型、字符型、布尔型、undefined类型、null类型、object。数值类型 var a = 1; var a = 1.1; var a = -4; var a = 3e2; //3*10^2 var a = 3e-2; //3*10^(-2) var a = 065; //8进制写法,不允许出现大于7的值。ES6取消,不能使用 var a = 0xff; //16进制原创 2020-11-01 16:46:31 · 2491 阅读 · 0 评论 -
js中的变量(ES5)和常量
变量变量,即可变的量,ES5中使用var定义。不同情况下直接调用变量的结果如果没有定义直接赋值,该变量就是这个值。a=3;console.log(a); //3如果没有定义和赋值,直接调用就会报错console.log(a); //Uncaught ReferenceError: a is not defined如果定义,没有赋值,直接调用的结果是undefinedvar a;console.log(a); //undefined变量的命名命名规则:所有变量名称必须使用字母或原创 2020-11-01 16:01:07 · 333 阅读 · 0 评论 -
在浏览器页面中写入内容的两种方式
document.body.innerHTML=“你好”;将body中的所有内容换成"你好"字符。document.write(“你好”);在文档中写入"你好",是在原来的内容后面添加。write只针对document,innerHTML是针对所有标签的。原创 2020-11-01 15:15:07 · 1193 阅读 · 0 评论 -
js中常用的打印输出语句
console.log(""); //输出日志文件 alert(""); //弹出框(ok对话框) confirm(""); //确定取消对话框,可以得到true的结果或false prompt("", ""); //弹出输入框,允许用户输入,并且返回结果[第二个引号中的内容是输入框里的默认结果]...原创 2020-11-01 15:02:32 · 7272 阅读 · 0 评论 -
js中的注释
1>注释的写法:// 注释单行/**/ 注释块和注释多行2>注释的作用:(1)可以解释代码内容(2)将部分代码暂时封存,以后需要使用的时候直接把注释符号去掉就可以了原创 2020-11-01 14:58:37 · 4002 阅读 · 0 评论 -
html中,超链接a标签的一些相关知识
超链接可以做锚点:锚点href的内容:1>指向任何标签的id2>指向a标签的name属性在页面中点击超链接以后会发生: 刷新页面(页面中的js代码不会重新执行) 产生历史记录 地址变化在a标签的href属性值中写“javascript:void(0)”,可以起到的作用:阻止页面的刷新、历史生成和地址的变化。在a标签的href属性值中写"javascript:alert()",可以起到和在任何标签中写onclick一样的作用...原创 2020-11-01 14:56:38 · 181 阅读 · 0 评论 -
html中不同的“树”及其关系
html中主要的树有三种:DOM树、CSS树、DOM渲染树1>DOM树就是HTML标签树2>CSS根据DOM树结构形成了CSS树3>DOM树和CSS树合并形成DOM渲染树原创 2020-11-01 14:38:04 · 249 阅读 · 0 评论 -
html中的 异步和同步 以及 async和defer属性
简单举例并区分:img标签在加载过程中,是并行同时加载的,这叫做异步。src和link加载外部文件时是一个加载完成后再继续加载下一个,这种叫做同步。async和defer属性的区别以及在script标签中应用举例:所有的scrip都是被加载后立即执行的。async:异步加载,不需要等待当前script加载完,就可以同时向后加载另一个script【在script标签的最后加一个async即可实现】<script src="./js/a.js" async>defer:当所有内容加载原创 2020-11-01 14:34:27 · 1487 阅读 · 0 评论 -
HTML标签的href属性和src属性的简单区别:
所有 href 指向的文件中所用到的地址都是指向这个当前链接文件的,而不是指向当前网页的。例如link标签的href属性。所有 src 指向的文件中所用到的地址都是指向相对当前页面的。例如script标签和img标签的src属性。...原创 2020-11-01 14:27:16 · 485 阅读 · 0 评论