AS3中 is,as,typeof的区别

var my_num:Number=9;
trace(typeof my_num);
var my_object:Array=["语文","数学","英语"];
trace(my_object is Array);
trace(my_object as Array)

//typeof 是用字符串形式返回对象的类型.
//is 用于判断一个对象是否属于一种类型.
//as 与is格式一致,但内容不同,如果一个对象属于一种类型.那么as返回这个对象,否则返回null.

1.is——判断对象/类是否属于某一类,返回布尔值

例:123 is Number

返回:true

例:int is Object

返回:true

2.as——弱转换,不会丢失数据,仅在类型链有效(转换为父类对象),失败返回null

例: 123 as uint

返回:123

例:123 as string

返回:null

注:在很多情况下,类型不符时编译器会自动进行弱转换

3.Class(object)——强转换,可能丢失数据,适用范围较广,失败抛出错误

例:int(123.45)

返回 123

4.typeof——以字符串形式返回对象的类型,不推荐使用

例:typeof "test"

返回:"string"

5.instanceof——和is相同,但不能判断接口,不推荐使用

 

6.getDefinitionByName——根据类名获取类

 

7.getQualifiedClassName——获取完整类名

8.getQualifiedSuperclassName——获取完整父类名

9.constructor根据对象获取类,需要转换为Object对象否则编译不通过

例:obj1.constructor

返回:[class Object]

时间: 2024-11-12 12:18:59

AS3中 is,as,typeof的区别的相关文章

js中instanceof与typeof的区别以及instanceof的门道

js中判断值类型,你可以通过typeof判断,string/number/boolean都很清楚,但是typeof在判断到引用类型的时候,返回值只有object/function,你不知道它到底是一个object对象,还是数组,还是new Number等等. 这个时候就需要用到instanceof:比如在 a  instanceOf f中沿着a的__proto__这条线来找,同时沿着B的prototype这条线来找,如果两条线能找到同一个引用,即同一个对象,那么就返回true.如果找到终点还未重

JavaScript中Element与Node的区别,children与childNodes的区别

关于Element跟Node的区别,cilldren跟childNodes的区别很多朋友弄不清楚,本文试图让大家明白这几个概念之间的区别. Node(节点)是DOM层次结构中的任何类型的对象的通用名称,Node有很多类型,如元素节点,属性节点,文本节点,注释节点等,通过NodeType区分,常见的有: 节点类型 NodeType 元素element 1 属性attr 2 文本text 3 注释comments 8 文档document 9 更多节点类型参考:https://developer.m

javascript中undefined和null的区别详解

一.问题的由来 永远不要直接使用undefined进行变量判断使用字符串"undefined"对变量进行判断 这里,undefined是原始值,在JS中undefined出现只有两种情况,一种是变量未定义.一种是定义了变量,但是没有赋值. 如果这个地方person未定义,那么利用person===undefined全等判断就会报错,person未定义但是如果使用typeof来判断,那么就不会报错了. ep: alert(person == undefined);//报错 person

AS3中的Dictionary类

AS3中的Dictionary类(flash.utils.Dictionary)是一个新的AS类.Dictionary类和Object唯一的区别在于:Dictionary对象可以使用非字符串作为键值对的键.例如: var obj:Object = new Object();obj["name"] = 1; // 键是字符串"name"obj[1] = 2; // 键是1 (被转换成字符串"1")obj[new Object()] = 3; //

DOM 中 Property 和 Attribute 的区别

原文地址:http://web.jobbole.com/83129/ property 和 attribute非常容易混淆,两个单词的中文翻译也都非常相近(property:属性,attribute:特性),但实际上,二者是不同的东西,属于不同的范畴. property是DOM中的属性,是JavaScript里的对象: attribute是HTML标签上的特性,它的值只能够是字符串: 基于JavaScript分析property 和 attribute html中有这样一段代码: <input

浅谈JS中的!=、== 、!==、===的用法和区别 JS中Null与Undefined的区别 读取XML文件 获取路径的方式 C#中Cookie,Session,Application的用法与区别? c#反射 抽象工厂

var num = 1;    var str = '1';    var test = 1;    test == num  //true 相同类型 相同值    test === num //true 相同类型 相同值    test !== num //false test与num类型相同,其值也相同, 非运算肯定是false    num == str  //true 把str转换为数字,检查其是否相等.    num != str  //false == 的 非运算    num ==

c# GetType()和typeof()的区别

c#   GetType()和typeof()的区别 C#中任何对象都具有GetType()方法,返回Type类型的当前对象的类型. GetType()是基类System.Object的方法,因此只有建立一个实例之后才能够被调用. typeof(x)中的x,必须是具体的类名.类型名称等,不可以是变量名称: The typeof operator is used to obtain the System.Type object for a type. typeof的参数只能是int,string,

JS中深拷贝与浅拷贝的区别,实现深拷贝的几种方法

JS中深拷贝与浅拷贝的区别,实现深拷贝的几种方法 如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力. 此篇文章中也会简单阐述到栈堆,基本数据类型与引用数据类型,因为这些概念能更好的让你理解深拷贝与浅拷贝. 我们来举个浅拷贝例子: let a=[0,1,2,3,4], b=a; console.log(a===b); a[0]=1; console.log(a,b); 嗯?明明b复

【翻译】JAVA中抽象类和接口的区别

不知道有没有人翻译过了,这篇是挺简单的,权当复习一遍内容吧. 很多常见的面试问题如"抽象类和接口有什么区别","你在什么时候用抽象类什么时候用接口".所以在这篇文章里面,我们会讨论一下这个话题. 在开始讨论它们的区别之前,我们先看看它们的介绍. Abstract class 抽象类 抽象类被用来抽象出子类的共同特征.它是不能被实例化的,它只能被子类继承作为超类使用.抽象类被用作它的子类下的层次结构创建模板(Abstract classes are used to c