JavaScript常用语法

1、!!a
把a变量强制转化为Bollean类型。

var a = false;
if(b && b == 'true'){
    a = true;
}

替换为

var a = !!(b && b == 'true');

2、+’hello’
把string自动转化为number类型
3、||和&&

var a = 0;
if(b){
    a = b;
}
else if (c){
    a = c;
}

替换为

var a = b || c || 0;

4、[arr]转数组

var b = [a];

5、bind函数的使用
originFunciton.bind(args,arg1)
返回一个与原始函数originFunciton有相同主体的新函数,即绑定函数.在绑定函数中,this被解析为传入的对象args.arg1为要传递到新函数(绑定函数)中的参数列表.

var func = function(value){
    this.name = 'rose';
    this.age = value;
    console.log(this);//Object {name: "rose", age: 20}
};
var obj = {
    name : 'john'
};
var val = 20;
var newFunc = func.bind(obj,val);
newFunc();

6、caller的使用
func.caller;
获取调用当前函数的函数.caller只在当前函数被执行时被定义.如果当前函数是在JavaScript顶层被调用,则caller为null.
demo如下:根据函数的不同触发源,组织不同数据

   var getData = function(){
        var data = getData.caller && {idx:1};
        $.ajax({
            url:'http://127.0.0.1:8888/',
            dataType:'jsonp',
            data:data,
            success:function(ret){
                console.log(ret);
            },
            error:function(error){
                console.log(error);
            }
        });
    };
    getData();
    var getDataFromTag = function(){
        getData();
    };
    getDataFromTag();

7、函数length属性的使用
func.length.
返回一个函数定义的参数数量.

var getData = function(a){
    var data = getData.length < arguments.length ? null : {idx:1};
    $.ajax({
            url:'http://127.0.0.1:8888/',
            dataType:'jsonp',
            data:data,
            success:function(ret){
                console.log(ret);
            },
            error:function(error){
                console.log(error);
            }
        });
}
getData();
var getDataFromTag = function(){
    getData(2,3);
};
getDataFromTag();

8、arguments属性的使用
func.arguments || arguments.
获取当前正在执行的函数的参数.
9、call || apply函数的使用
func.call(null|| args,arg1)
func.apply(null|| args,arg1)
调用一个对象的方法,用另一个对象替换当前对象,传入参数形式不同而已.

var getData = function(){
    console.log(this,arguments);
}
getData(1);
var fetchData = {
    getDataFromTag: function(){
        this.tagData = {type:'tag',id:'102'};
        getData.apply(this,['apply',3,4]);
    },
    getDataFromOther: function(){
        this.otherData = {type:'other',id:'other_2'};
        getData.call(this,'call',5,6);
    }
}
fetchData.getDataFromTag();
fetchData.getDataFromOther();
此条目发表在JavaScript分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注