js笔记

Posted z.ain

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js笔记相关的知识,希望对你有一定的参考价值。

null 用Number转换后是0
null 用typeof后是object(随浏览器不同)
undefined用Number转换后的typeof是NAN

var demo=true;
var num=Number(demo);
console.log(num); //1
parseInt(‘123abc‘) //只取数字 //123



function sum(a,b,c,d){
console.log(sum.length);
}

sum(11,2,3)
函数中形参的长度 sum.length;
函数中实参的长度 arguments.length;

js不定参的好处。


函数声明整体提升
变量的声明提升。

js中只有一种情况使用未定义的变量不会报错,而是返回的"undefined"

javascript中的立即执行函数。执行完就销毁了。
(function abc(){
var a=0;
var b=2;
Console.log(a+b);
}())

只有表达式才能被执行符号执行。
被执行符号执行的函数就是立即执行函数。执行完就销毁了。

闭包与立即执行函数。


原型,原型链
document.wirte(obj); 这里的document.write()会隐士的调用toString()方法。
null,undefined是没有prototype对象的,所以它没有toString()方法。
var obj=Object.create(null);
document.write(obj); 这句会报错的。


Math.floor()向下取整 Math.ceil()向上取整 javascript的保留小数的方法toFixed()方法,有时候会导致精度
不准,所以尽量取整来算。这是javascript的精度不准的问题。

call和apply
改变this指向,区别参数列表不同,apply的参数必须是数组形式。

js的对象在遍历的时候,有一个底层的原理
obj.name---------------------->obj[‘name‘]


var obj={
name:‘123‘,
age:23,
sex:‘male‘,
height:180
}

for(var pro in obj){
// console.log(obj.pro); //这样会打印4个undefined obj[‘pro‘]没有这个属性
console.log(obj[pro]); //应该这么写才是对的。
}


异步加载js的三种方式:
js的异步加载,defer(IE下可用)
async是w3c的异步加载。(只能引入外部js文件时使用)<script type="text/javascript" async="async" src="tools.js"></script>
创建script,插入DOM中,加载完毕后callBack.
<body>
<script type="text/javascript">
var script = document.createElement(‘script‘);
script.type = "text/javascript";
script.src = "tools.js";
document.head.appendChild(script);
</script>
</body>


js加载时间线:
异步禁止使用document.write(),因为这个方法会清空文档流。

window.onload是等所有dom加载完执行。

当dom解析完就执行。 这种要快一点。
$(document).ready(function(){

})


js的正则表达式。
两种创建方式1.直接字面量 2.new构造函数的方式
unicode编码包含一切字符。\u0000-\uffff 十六进制的。
js中的字符串replace方法,默认只能匹配一个。
var str="aa"; console.log(str.replace("a","b")); ------>ba
正则表达式加g,才能匹配所有。
正则表达式的贪婪模式。






































































































以上是关于js笔记的主要内容,如果未能解决你的问题,请参考以下文章

JS笔记

Node.js笔记

js学习笔记

Node.js笔记

js笔记

ember.js学习笔记