高鹏*

导航

 

Javascript中检验字符串、数组、json的方法:

  1.isString:

function isString(str){
    return str instanceof String || typeof str=='string';
}

  js中创建字符串有两种方式:

var str = 'zifuchuan';
var str = new String('zifuchuan');

  这两种方式有什么区别呢?我们来看例子:

function isString(str){
    return str instanceof String;       
}
var str1 = 'zifuchuan';
var str2 = new String('zifuchuan');
console.log(isString(str1));//结果是false;
console.log(isString(str2));//结果是true;

  嗯?有看到区别吧。再来看:

function isString(str){
    return typeof str == 'string';
}
var str1 = 'zifuchuan';
var str2 = new String('zifuchuan');
console.log(isString(str1));//结果是true;
console.log(isString(str2));//结果是false;

  嗯?精神分裂,看到区别但是合不起来?看:

function isString(str){
    return str instanceof String || typeof str == 'string';
}
var str1 = 'zifuchuan';
var str2 = new String('zifuchuan');
console.log(isString(str1));//结果是true;
console.log(isString(str2));//结果也是true;

  

  2.isArray:

function isArray(arr){
    return arr instanceof Array;
}
var arr1 = [1, 2, 3];
var arr2 = new Array(1, 2, 3);
console.log(isArray(arr1));//true;
console.log(isArray(arr2));//true;

  创建数组的两种方法结果都一样。

 

  3.isJson

function isJson(obj){
    return obj.constructor == Object;
}
var json = {"a":1, "b":2};
console.log(isJson(json));//true

  json的检测用到了constructor,说到constructor就不得不说prototype,那有的朋友就会问,说了prototype,为什么不说说面向对象呢?你看,这一说就停不下,就没完了,所以,我选择不说。^_^

  

posted on 2015-10-27 18:24  高鹏*  阅读(2691)  评论(0编辑  收藏  举报