javascript权威指南(第六版)

js ——>>

display:隐藏元素,不保留所占空间

visivility:隐藏元素,保留所占空间

{name:xh,year:10}:对象

[1,2,3]:数组

is精度带来的表述问题

0.3-0.2 不等于0.1

toFixed()进行四舍五入或者尝试《js精度达不到解决方法》

getDay():0为周日1为周一~6为周六

getMonth():从0计数eg:1月获取值为0,2月为1以此类推

getUTCHours():世界标准时间

lastIndexOf():字符最后出现的位置,区别与IndexOf()

算数表达式 a++的执行机制 p82译注1

var i=1;

i++ --> 1

++i -->3

i++后增量

++i前增量

===严格相等、恒等运算符

js中所有大写字母都小于小写字母,js严格区分大小写,严格按照ASCII码表排序

Evsal() :不能被赋予别名、若通过别名调用直接抛EvalError异常

通过delete删除对象不仅是设置了一个undefined值

continue:执行下一次循环

break:退出循环

在for与wile循环中有区别

while中使用continue如果不做循环变量修改会陷入死循环、因为continue后是回到while头部再次执行。而在for循环中continue后会执行增加或修改变量值。所以while循环并不能完全等价

for/in循环:更方便地遍历对象属性成员

短路算法:多用于避免错误

eg:

var a = -1, b = 2, c = -3, d = -1;

d =  a+1>0 && ++b>0 &&  c-4>0;

结果:a=-1,b=2,c=-3.d=false

当执行到第一个‘a+1>0’是得到值fase,停止执行后面数据

从0开始的不连续数组

Array.join()将所有元素转换为字符串拼接到一起,返回最后生成的字符串

Array.reverse()将元素颠倒顺序,返回逆序数组

Array.sort()将元素排序并返回排序后的数组

Array.concat()创建并返回一个新数组

Array.slice()返回指定数组的一个片段或子数组

Array.splice()插入或删除元素

Array.push()在数组尾部添加一个或多个元素,返回数组新长度

Array.pop()在数组的尾部删除最后一个元素并返回他删除的值

Array.unshift()在数组的头部添加一个或多个元素 --与push类似

Array.shift()在数组的头部删除一个元素 --与pop类似

toLocaleString()将元素转换为字符传且使用本地化(自定义)分隔符将这些字符串连接起来。用法【https://blog.csdn.net/weixin_39749820/article/details/82869537】

eg:

var a = [1,3,5,2,4];

a.join("-");// => "1-3-5-2-4"

a.reverse();// => [4, 2, 5, 3, 1]

a.sort();// =>[1, 2, 3, 4, 5]

a.concat(6,7);// =>[1, 3, 5, 2, 4, 6, 7]

a.slice(1,3);// =>[3, 5]

a.splice(2);// =>[5, 2, 4]

a.splice(2,1);// =>[5]

var b = [];

b.push(1,2);// => [1, 2]

b.push([3,4]);// =》[1,2,[3,4]]

b.pop();// =>[1, 2] 返回 [3,4]

b.unshift(0);// =>[0, 1, 2]

b.shift();// =>[1, 2] 返回0

var c = 12345678;

c.toLocaleString();// =>12,345,678

var dates = new Date();

dates.toLoacaleString();// =>2019/12/6 下午5:27:28

...(未完待续)

slice(开始位置,结束位置)

地图:反应巨慢。。。。

pushState、replaceState:改变网址(存在跨域限制)而不刷新页面

pushState:向浏览器历史添加了一个状态(增加一个记录)

replaceState:把当前的页面的历史记录替换掉

防止事件多次触发,建议使用闭包。表单提交使用flag加锁

节流:throttle 无论点击多少次都只在固定间隔执行一次

闭包:保证私有变量不被修改和污染,与static类似

实例对象一旦创建,将自动引用prototype对象的属性和方法.

"!!"将表达式进行强制转化为bool值的运算,运算结果为true或者false。

const aa = 'xx';

const bb = !!aa; // bb输出为true

const cc = !!(NaN || undefined || null || 0 || '' ); // cc为false;

\\表转义

\\\\表’\‘

你可能感兴趣的:(javascript权威指南(第六版))