js
三斤木
一个脑子里有浆糊,不叨不快活的人
展开
-
【笔记】eval
(function f() { 'use strict'; //严格模式 eval('var foo = 123'); //严格模式下,eval内部声明的foo变量,不会影响到外部 console.log(foo);})()(function f() { 'use strict'; var foo = 1; eval('foo = 2'); console.log(foo); //打印出来2,eval在严格模式下可以读写当前作用域的变量})()var a = 1;原创 2022-05-30 00:40:38 · 71 阅读 · 0 评论 -
【笔记】布尔运算符要点
取反运算符!后返回true有以下几种情况!undefined!null!0!false!NaN!‘’连续取反,等同于Boolean(),如!!x且运算符计算:第一个运算子 && 第二个运算子第一个运算子如果是true, 返回第二个运算子的值第一个运算子如果是false, 返回第一个运算子的值, 不再对第二个运算子求值。 这种只通过第一个表达式的值,控制是否运行第二个表达式的机制, 被称为“ 短路”(short-cut)或运算符计算:第一个运算子 || 第原创 2022-05-30 00:40:09 · 107 阅读 · 0 评论 -
【笔记】比较运算符要点
特点:可以比较各种类型的值返回布尔值非相等运算符与原始类型值对比(数值、字符串、布尔值、null、undefined)字符串:按照字典顺序(实际上是Unicode码点)比较其余原始类型值:先转为数值再比较与对象对比:对象会先转为原始类型的值,再比较与NaN对比:返回false相等运算符=== 严格相等运算符: 判断值是否相等,判断类型是否相同(对于复合类型,判断是否引用了同一个内存地址)!== 严格不相等运算符:先计算严格相等运算符的结果,返回相反值严格相等运算原创 2022-05-30 00:39:51 · 85 阅读 · 0 评论 -
【笔记】算术运算符要点
按照不同的数据类型,运算可分为以下几种情况:数值+数值:纯粹的数学计算,如1+1=2数值+字符串 / 字符串+数值:加法运算符遇到字符串,会执行“连接”操作。如1+‘a’=1a// 加法运算符// 从左到右的运算次序,字符串的位置不同会导致不同的结果:相加或者连接。这种不同的语法行为,叫做“重载”(overload)'3'+4+5 // 3453+4+'5' // 75// 减法、乘法、除法运算符都是把数据转为数值后,再计算数值+对象:对象会先转为原始类型的值,再执行“连接”操作原创 2022-05-30 00:39:30 · 118 阅读 · 0 评论 -
【笔记】数组要点
// 定义数组// 定义数组的同时进行赋值,也可以不赋值,如var arr = []// 数组可以放入任何类型的数据:对象,数组,函数var arr1 = ['a','b'];var arr2 = [[1,2],[3,4]]; //多维数组,第一个数组组成第一行的数据,第二个数组是第二行的数据// 读取数组长度:等于数组最大的数字键+1arr.length// 设置数组长度(数组长度最多2^32-1)arr.length = 1;// 清空数组: 设置数组长度为0arr.lengt原创 2022-05-30 00:38:48 · 99 阅读 · 0 评论 -
【笔记】闭包要点
function f1() { var b = 999; //999是局部变量,在函数作用域生效 function f2() { console.log(b); //链式作用域结构,可读取父级的变量 } return f2;}f1(); //返回的是一个函数var re = f1(); //将返回的f2函数赋给rere(); //执行re函数...原创 2022-05-30 00:38:11 · 71 阅读 · 0 评论