`
touchinsert
  • 浏览: 1290717 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

javascript 对象类型检查

 
阅读更多

变量的类型检查表

变量 typeof变量 变量、构造函数(注意大写 )

{an:"object"} object O bject

["an","array"] object A rray

function(){} function F unction

"a string" string S tring

55 number N umber

true boolean B oolean

new User() object User

/*2-7使用typeof 来判断一个对象类型的例子*/
/*parseInt 方法返回与保存在 numString 中的数字值相等的整数
parseInt("abc");//返回NaN ,用isNaN方法检测NaN
parseInt("12abc");//返回12
*/
//检查我的的数字是否是字符串
var num="12abc";
//var arr=new Array("aa","bb","cc");
var arr="aa,aa,a,,";
var str="mmmm";
//alert(arr);
if(typeof num=="string" )
{
//若是根据这个字符串解析出整数来
num=parseInt(num);
alert(num);//这里12
}
// //检查数组是否实际上是字符串
if(typeof arr=="string")
{
//若是,则根据逗号切分出数组来
//arr=arr.split(",")
alert(arr);
}
else{
// arr=arr.split(",")
alert(arr);
}


/*2-8使用构造函数属性constructor 来判断对象的类型*/
检查我的的数字是否是字符串
if(num.constructor==String)

num=parseInt(num);
alert(num)
//检查数组是否实际上是字符串
if(str.constructor==Array)
str=str.join(',');
alert(str);


/*api JavaScript constructor 属性:constructor 属性返回对创建此对象的 Boolean 函数的引用。语法:object.constructor */
var test=new Boolean();

if (test.constructor==Array)
{
document.write("This is an Array");
}
if (test.constructor==Boolean)
{
document.write("This is a Boolean");
}
if (test.constructor==Date)
{
document.write("This is a Date");
}
if (test.constructor==String)
{
document.write("This is a String");
}
输出:This is a Boolean


/*2-9一个函数,可以用来严格维护传入函数的所有参数*/
function strict(types,args){
//保证类型的数量和参数的数量相匹配
if(types.length!=args.length){
throw "Invalid number of arguments.Expected"+ types.length+ ",received" +args.length +" instead";
}

//遍历所有的参数,检查它们的类型
for (var i=0;i<args.length;i++)
{
if(args[i].constructor!=types[i])
{
throw "Invalid argument type. Expected "+ types[i].name+",received "+args[i].constructor.name+" instead";
}//如果把userList中的strict([String,Number,Array],arguments);换成strict([String,Number,Object],arguments);//则在firefox中显示uncaught exception: Invalid argument type. Expected Object,received Array instead
}




}


//一个简单的函数,打印用户列表

function userList(prefix,num,users){
//保证需要prefix是字符串,num是数字,users是数组
strict([String,Number,Array],arguments);

//遍历'num'个用户
for(var i=0;i<num;i++)
{
//显示第个用户的信息
alert(prefix+":"+users[i]);
}
}

function test()
{
var prefix="ddd";
var num=parseInt("3");
var user=["11","22",""];//新建数组,并直按赋值,显示dd:11然后显示ddd:22,最后显示ddd:
// var user=new Array();//新建数组, 显示ddd:11然后显示ddd:22,最后显示ddd:undefined
// user[0]="11";//给数组赋值
// user[1]="22";
userList(prefix,num,user);//

}

分享到:
评论

相关推荐

    JavaScript 类型检查库 types.js.zip

    JavaScript 类型检查库 types.js ,TypesJS 是一个 JavaScript 的对象类型检查库,支持浏览器和 Node.js...

    javascript常用对象梳理

    熟练掌握window对象的status、location、name、self、opener属性的使用 Window对象是客户端javascript最高层对象之一,只要打开浏览器窗口,不管该窗口中是否有打开的网页,当遇到BODY、FRAMESET或FRAME元素时,...

    javascript-inspector:检查javascript对象,库等

    检查javascript对象和库。 在找到运行的工具。 特征 检查任何脚本-内部,外部,远程或本地计算机 高级参数解析和验证 支持所有参数类型,包括: 日期 回调功能 通过JSON的复杂类型(对象,数组等) 无限嵌套检查...

    javascript 使用手册

    Java采用静态联编,即Java的对象引用必须在编译时的进行,以使编译器能够实现强类型检查,如不经编译则就无法实现对象引用的检查。JavaScript采用动态联编,即JavaScript的对象引用在运行时进行检查。

    面向对象javascript笔记

    面向对象的 javascript 学习 大家好,根据我的学习...引用,函数重载和类型检查,作用域,图解prototype和constructor, 闭包,上下文,公共方法和私有方法,公共变量私有变量,特权方法,静态方法,命名空间,编码建议

    JavaScript详解(第2版)

    1.9.1 JavaScript对象 12 1.9.2 文档对象模型 12 1.10 关于浏览器 13 1.10.1 JavaScript的版本 14 1.10.2 你的浏览器遵循标准吗 16 1.10.3 浏览器是否已启用JavaScript 16 1.11 JavaScript代码放在哪儿...

    浅析JavaScript中的对象类型Object

    理解:Object类型是所有它的实例的基础,换句话说,Object类型所具有的任何属性和方法也同样存在于更具体的对象中。 Object的实例都具有以下属性和方法 1.Constructor:保存着用于创建当前对象的函数 2.hasOwnProperty...

    JavaScript强制类型转换和隐式类型转换操作示例

    在JavaScript中声明变量不需指定类型, 对变量赋值也没有类型检查,同时JavaScript允许隐式类型转换。这些特征说明JavaScript属于弱类型的语言。 (1).转换为字符串 转换为字符串是应用程序中的常见操作,javascript...

    sameness.js:Sameness.js是一个纯JavaScript对象比较库。 它具有检查两个对象是否是相同对象,相同对象,等效对象或超集与子集对象的能力

    Sameness.js是一个纯JavaScript对象比较库。 它具有检查对象a和b是否为的功能: 相同的对象( ) 相同的对象( ) 等效对象( ) b的子集a ( ) Sameness.js通过Sameness变量公开。 是同样的 检查a和b对象...

    javascript学习笔记.docx

    5) in可以检查指定字符串是否是一个对象的基本属性或方法名称;instanceof运算符返回左边的对象是否右边类的一个实例;delete可以删除一个属性,它不会影响到属性关联的对象的生存,若该属性不存在会返回true;[]...

    html+css+javascript 教程

    Hyper Text Markup Language 超文本 (文字+图片+音视+链接…) ...即变量在使用前不需作声明,而是解释器在运行时检查其数据类型 x=1234; //数值型变量 y=“4321”; //字符型变量 代码格式不一样 嵌入方式不一样

    详解JavaScript RegExp对象

    RegExp对象是原生JavaScript中表示正则表达式的对象。 创建对象的方法为:var RegExp = new RegExp(pattern, attributes); 参数pattern指定正则表达式的规则或者表示正则表达式模式的字符串; 参数attributes为可选...

    is:SlimIO IS-Node.js JavaScript类型检查器

    Node.js JavaScript类型检查器(原语,对象等。) 受@sindresorhus/is启发的软件包。 该软件包旨在在Node.js上工作(不支持浏览器)。 为什么 专注于类型检查(无花哨功能)。 专注于Node.js支持。 随附...

    使用 Typescript/JavaScript 创建 Telegram 应用程序的严格类型库(基于 TDLib 1.8)

    一切都有严格的类型,所以要充分利用类型检查和代码完成。 灵活性。Airgram 依赖于中间件。这提供了高度的自由度。您可以修改请求、保存响应、执行数据流中的任何操作。 数据模型。您可以扩展标准 TDLib 对象并添加...

    Strongly-JS:原版 JavaScript 的强类型函数和变量

    带有运行时类型检查的 vanilla JavaScript 的强类型函数和变量。 类型 内置类型 简单的 简单类型是允许某些值的预定义过滤器。 NUMBER :此类型允许任何数字(包括NaN和Infinity )。 BIGINT :此类型允许任何 ...

    程序天下:JavaScript实例自学手册

    22.8 拖拽任意对象 22.9 避免打开无效页面 22.10 用JavaScript调用Google AdSense 22.11 Ajax效果:可拖拽的表格 22.12 JavaScript调用Web Service 22.13 用JavaScript实现编码解码 22.14 创建带属性...

    modela:Javascript模型库可用于对象。 为对象创建架构并检查验证

    特征手动验证类型检查清洁物体安装$ npm install modela --save# or$ yarn add modela 然后,将其导入: // ES2015+import Modela from 'modela' ;// CommonJSvar Modela = require ( 'modela' ) ;用法建立模型 ...

    type-js:javascript中的类型断言

    类型-js 对 javascript 的类型检查支持在运行时检查所有类型支持 ES5++ 浏览器。 对象根在创建后被冻结。 已初始化的对象被阻止扩展。 要定义对象,您必须向 Type.create(type_definition,prototype); 提供两个对象...

    JavaScript经典实例

    前言  第1章使用JavaScript字符串  1.0简介  1.1连接两个或多个字符串 ... 第16章JavaScript对象  第17章JavaScript库  第18章通信  第19章使用结构化数据  第20章持久化  第21章JavaScript创新用法

    tyshemo:JavaScript运行时数据类型检查系统和现代React状态管理模型

    泰谢莫TySheMo是一个javascript运行时数据类型检查系统和现代React状态管理模型。 它提供了不同级别的对象来描述数据的类型和结构,并使得在复杂的js代码业务中轻松确保数据类型成为可能。 与其他类型系统不同,...

Global site tag (gtag.js) - Google Analytics