javaScript笔记做题知识总结,查漏补缺

1 篇文章 0 订阅
1 篇文章 0 订阅
  •  typeof 只返回 string  number object 还有 undefined function ,number 就包含了float;
  • var test='4399'-0;变量test中存储的数字类型4399(js解释器会将字符串'4399'调用Number()转换为4399,再去计算),  typeof tset 返回 'number', 'number' == 'number',返回 true;
  • var i=0;

    function a(){

    // console.log(i++);//0

    console.log(++i);//1

    }

    a();

  • 理解闭包,举例子:

function Foo() {
    var i = 0;
    return function() {
        //匿名函数;这个函数的i是引用的是外部的i,构成了闭包函数。
        console.log(i++);//函数内部可以读取函数外部的变量;
        //闭包函数简单点说就是可以读取其他函数外部的变量;      
    }
}
 
var f1 = Foo(),//0
    f2 = Foo();
f1();//0
f1();//1
f2();//0

console.log("-----------------------------")
function test(){
    var a= 1;
    return function(){
        a++;
        console.log(a);//2
       // console.log(a++);//1 假如直接将自增放进来;
    }
};

var f1=test();//2
f1();//2
f1();//3
  • sessionStorage 、localStorage 和 cookie 之间的区别 共同点:都是保存在浏览器端,且同源的。 区别: 1:cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递。而sessionStorage和localStorage不会自动把数据发给服务器,仅在本地保存。cookie数据还有路径(path)的概念,可以限制cookie只属于某个路径下。 2:存储大小限制也不同,cookie数据不能超过4k,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如会话标识。sessionStorage和localStorage 虽然也有存储大小的限制,但比cookie大得多,可以达到5M或更大。 3:数据有效期不同,sessionStorage:仅在当前浏览器窗口关闭前有效,自然也就不可能持久保持;localStorage:始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据cookie只在设置的cookie过期时间之前一直有效,即使窗口或浏览器关闭。 4:作用域不同,sessionStorage不在不同的浏览器窗口敏感词享,即使是同一个页面;localStorage在所有同源窗口中都是共享的;cookie也是在所有同源窗口中都是共享的。 5:Web Storage支持事件通知机制,可以将数据更新的通知发送给监听者。 6:Web Storage 的 api 接口使用更方便。
  • get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制

  • js运作在浏览器中,是单线程的,js代码始终在一个线程上执行,此线程被称为js引擎线程;ps:web worker也只是允许JavaScript脚本创建多个线程,但是子线程完全受主线程控制,且不得操作DOM。所有任务可以分成两种,一种是同步任务(synchronous),另一种是异步任务(asynchronous)

  • js函数调用时加括号和不加括号的区别.不加括号相当于把函数代码赋给等号左边,加括号是把函数返回值赋给等号左边;

js中this的用法,this总是指向调用它的对象,倒数第二行的getColor为windows调用的,倒数第一行的getColor是test对象调用的

var color='gree';
var test={
    color:"blue",
    getColor:function(){
        var color="red";
        console.log(this.color);//this指向的是window
    }
}
var getColor=test.getColor;
getColor();
test.getColor();
  • splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

    注释:该方法会改变原始数组。

  • eval:返回字符串表达式中的值

    unEscape:返回字符串ASCI码

    escape:返回字符的编码

    parseFloat:返回实数

  • NaN,即非数值(Not a Number)是一个特殊的数值,这个数值用来表示一个本来要返回数值的操作数未返回数值的情况;例如字符串“10”或Boolean值。而任何不能被转换为数值的值都会导致这个函数返回true。

  • if(condition)的condition求值结果若非布尔值,ECMAScript会自动调用Boolean()转换函数将结果转换为布尔值。转换规则为

var a="undefined";//非空字符
//var a=undefined;//false
var b="false";
//var b=false;//false
var c="";//空字符
function assert(aVar){
    if(aVar)     
        console.log(true);
    else  
    console.log(false);
}
assert(a);
assert(b);
assert(c);
  • javaScript没有函数重载;
var m= 1, j = k = 0; 
    function add(n) { 
        return n = n+1; 
  } 
    y = add(m); 
    console.log(y);
//JavaScript没有函数重载的情况,如果有两个函数同名,那么后一个命名的
//覆盖第一个同名的函数,所以此时输出的全部是4;
    function add(n) { 
        return n = n + 3; 
    } 
z = add(m);
console.log(z);
  • console.log(void ());出错,不符合

  • console.log(void 0); // undefined

    console.log(void(0)); // undefined

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值