`
orange5458
  • 浏览: 348325 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

JavaScript OOP(一) -- 数据类型

 
阅读更多

typeof方法

 

返回一个用来表示表达式的数据类型的字符串:"number" "string" "boolean" "object" "function" 和 "undefined"

  • number
     在 Jscript 中整数和浮点值没有差别;JScript 数值可以是其中任意一种(JScript 内部将所有的数值表示为浮点值)。
     
     另外,JScript包含特殊值数字。它们是:
     Number.NaN
     表示算术表达式返回非数字值的特殊值。
     NaN 不与任何值相等,包括其本身。要检测值是否为 NaN,请使用 isNaN 函数。
     
     Number.MIN_VALUE
     返回 JScript 中能够表示的最接近零的数。约等于 2.22E-308。
     
     Number.MAX_VALUE
     返回 JScript 能表达的最大的数。约等于 1.79E+308。
     
     Number.NEGATIVE_INFINITY
     返回比 JScript 能够表示的最小负数(-Number.MAX_VALUE)更小的值。
     JScript 将 NEGATIVE_INFINITY 值显示为 -infinity。该值数学上的作用与负无穷相同。
     
     Number.POSITIVE_INFINITY
     返回比在 JScript 中能够表示的最大的数 (Number.MAX_VALUE) 更大的值。
     JScript 将 POSITIVE_INFINITY 值显示为 infinity。该值数学上的作用与正无穷相同。 (注:与NaN不同,Finity是相等的)
     
     两个相关方法:
     isNaN
     返回一个 Boolean 值,指明提供的值是否是保留值 NaN (不是数字)。
     还有一种办法,变量可以与它自身进行比较。如果比较的结果不等,那么它就是NaN。这是因为NaN是唯一与自身不等的值。
     
     isFinite
     返回一个 Boolean 值,指明所提供的数字是否是有限的。
     如果 number 不是 NaN 、负无穷或正无穷,那么 isFinite 方法将返回 true 。 如果是这三种情况,函数返回 false 。
<html>
	<head>
		<title>number test</title>
	</head>
	<body>
		<input type="button" value="typeof(0)" onclick="javascript:alert(typeof(0));"/><br>
		<input type="button" value="number.MIN_VALUE" onclick="javascript:alert(Number.MIN_VALUE);"/><br>
		<input type="button" value="number.MAX_VALUE" onclick="javascript:alert(Number.MAX_VALUE);"/><br>
		<input type="button" value="number.NEGATIVE_INFINITY" onclick="javascript:alert(Number.NEGATIVE_INFINITY);"/><br>
		<input type="button" value="number.POSITIVE_INFINITY" onclick="javascript:alert(Number.POSITIVE_INFINITY);"/><br>
		<input type="button" value="isNaN(0)" onclick="javascript:alert(isNaN(0));"/><br>
		<input type="button" value="isNaN('a')" onclick="javascript:alert(isNaN('a'));"/><br>
		<input type="button" value="isFinite(Number.NaN)" onclick="javascript:alert(isFinite(Number.NaN));"/><br>
		<input type="button" value="isFinite(Number.POSITIVE_INFINITY)" onclick="javascript:alert(isFinite(Number.POSITIVE_INFINITY));"/><br>
		<input type="button" value="isFinite(Number.NEGATIVE_INFINITY)" onclick="javascript:alert(isFinite(Number.NEGATIVE_INFINITY));"/><br>
		<input type="button" value="Number.POSITIVE_INFINITY" onclick="javascript:alert(Number.POSITIVE_INFINITY*2 == Number.POSITIVE_INFINITY);"/><br>
	</body>
</html>
  • string
     一个字符串值是排在一起的一串零或零以上的 Unicode 字符(字母、数字和标点符号)。字符串数据类型用来表示 JScript 中的文本。脚本中可以包含字符串文字,这些字符串文字放在一对匹配的的单引号或双引号中。字符串中可以包含双引号,该双引号两边需加单引号,也可以包含单引号,该单引号两边需加双引号。
     
     请注意,JScript 中没有表示单个字符的类型(如 C++ 的 char)。要表示 Jscript 中的单个字符,应创建一个只包含一个字符的字符串。包含零个字符("")的字符串是空(零长度)字符串。
  • function
     
     function A(){} <=> var A = function() {} (唯一区别在预编译阶段)
     
     几个重要的属性(OOP部分不包含在此)
     arguments
     arguments 对象的 length 属性包含了传递给函数的参数的数目。对于arguments 对象所包含的单个参数,其访问方法与数组中所包含的参数的访问方法相同。
     
     arguments.callee
     返回正被执行的Function对象,也就是所指定的Function对象的正文,仅当相关函数正在执行时才可用。
     
     caller
     返回一个对函数的引用,该函数调用了当前函数。
     对于函数来说,caller 属性只有在函数执行时才有定义。如果函数是由JScript程序的顶层调用的,那么caller包含的就是null。
<html>
	<head>
		<title>function test</title>
	</head>
	<body>
		<script language="javascript">
		<!--
		function foo1(arg) {
			foo2(arg, 'b');
		}
		
		function foo2(arg1, arg2) {
			foo3(arg1, arg2, 'c');
		}
		
		function foo3() {
			var foo = arguments.callee;
			while (foo) {
				var args = foo.arguments;
				for (var i = 0; i < args.length; i++) {
					document.write(args[i]);
				}
				foo = foo.caller;
				document.write("<br/>");
			}
		}
		
		foo1('a');
		-->	
		</script>
	</body>
</html>
  • object
      略
     
      特殊的object类型null(typeof(null) == object && (null instanceof Object) == false)
      通过给一个变量赋null值来清除变量的内容。
     
     对象属性与null的比较,以下情况结果为true
     如果属性 someObject.prop 包含 null 值
     如果属性 someObject.prop 不存在(null == undefined, 但是(null === undefined) == false)
     
     要检查一个对象属性是否存在,可以使用新的 in 运算符
     
    <html>
    	<head>
    		<title>null test</title>
    		<script language="javascript">
    		<!--
    		var nullVar = null;
    		-->
    		</script>
    	</head>
    	<body>
    		<input type="button" value="typeof(null)" onclick="javascript:alert(typeof(null));"/><br>
    		<input type="button" value="nullVar == null" onclick="javascript:alert(nullVar == null);"/><br>
    		<input type="button" value="window.unexistedProp == null" onclick="javascript:alert(window.unexistedProp == null);"/><br>
    		<input type="button" value="'unexistedProp' in window" onclick="javascript:alert('unexistedProp' in window);"/><br>
    		<input type="button" value="null instanceof Object" onclick="javascript:alert(null instanceof Object);"/><br>
    		<input type="button" value="null == undefined" onclick="javascript:alert(null == undefined);"/><br>
    		<input type="button" value="null === undefined" onclick="javascript:alert(null === undefined);"/><br>
    	</body>
    </html> 
    
  • undefined
     如下情况使返回 undefined 值:
     对象属性不存在
     声明了变量但从未赋值
     
     测试已声明变量是否为undefined
     x == undefined //right, IE5.5以上版本中,undefined是一个已实现的系统保留字
     typeof(x) == undefined //wrong
     typeof(x) == "undefined" //right
     
     其它产生undefined结果的语句
     void方法返回值
     无return语句的function执行结果
     
    <html>
    	<head>
    		<title>undefined test</title>
    		<script language="javascript">
    		<!--
    		var undefined2;
    		-->
    		</script>
    	</head>
    	<body>
    		<input type="button" value="alert(window.undefined1)" onclick="javascript:alert(window.undefined1);"/><br>
    		<input type="button" value="alert(unassigned undefined2)" onclick="javascript:alert(undefined2);"/><br>
    		<input type="button" value="alert(undefined2 == undefined)" onclick="javascript:alert(undefined2 == undefined);"/><br>
    		<input type="button" value="alert(typeof(undefined2) == undefined)" onclick="javascript:alert(typeof(undefined2) == undefined);"/><br>
    		<input type="button" value="alert(typeof(undefined2) == 'undefined')" onclick="javascript:alert(typeof(undefined2) == 'undefined');"/><br>
    		<input type="button" value="alert(void(0))" onclick="javascript:alert(void(0));"/><br>
    		<input type="button" value="alert(function(){}())" onclick="javascript:alert(function(){}());"/><br>
    	</body>
    </html>
  • boolean
     true/false
     任何值为0、null、undefined、空字符串的表达式被解释为false,并且除null和undefined之外==false。其他任意值的表达式解释为 true。
     
    <html>
    	<head>
    		<title>boolean test</title>
    	</head>
    	<body>
    		<input type="button" value="alert(0 == true)" onclick="javascript:alert(0 == true);"/><br>
    		<input type="button" value="alert(null == true)" onclick="javascript:alert(null == true);"/><br>
    		<input type="button" value="alert(undefined == true)" onclick="javascript:alert(undefined == true);"/><br>
    		<input type="button" value="alert('' == true)" onclick="javascript:alert('' == true);"/><br>
    		<input type="button" value='alert("" == true)' onclick='javascript:alert("" == true);'/><br>
    		<input type="button" value="alert(0 == false)" onclick="javascript:alert(0 == false);"/><br>
    		<input type="button" value="alert(null == false)" onclick="javascript:alert(null == false);"/><br>
    		<input type="button" value="alert(undefined == false)" onclick="javascript:alert(undefined == false);"/><br>
    		<input type="button" value="alert('' == false)" onclick="javascript:alert('' == false);"/><br>
    		<input type="button" value='alert("" == false)' onclick='javascript:alert("" == false);'/><br>
    	</body>
    </html>
分享到:
评论

相关推荐

    Modern-JavaScript-From-The-Beginning:Packt发行的《现代JavaScript代码存储库》从一开始

    主题包括:-基础知识和基础知识:数据类型,let和const变量,函数,条件,循环,对象文字,数组等。 DOM操作:选择器,遍历DOM,显示/隐藏,创建和删除元素,事件侦听器OOP:ES5原型,继承,ES2015类和子类,构造...

    讲解JavaScript的面向对象的编程

    1. 下载解压之后,首先打开Contructor and object used.html文档,使用IE运行之后,查看原代码,代码中一行注释一行代码说明了this与prototype关键在使用function数据类型来定义JavaScript类的成员变量和普通方法的...

    javascript-ADTs:出于教育目的用 Javascript 编写的抽象数据类型示例

    本文从抽象数据类型 (ADT) 和面向对象编程 (OOP) 以前称为过程数据类型 (PDT) 中恢复了概念,指出了它们中的每一种的差异、优势和劣势,以及它们如何单独和协同工作为编程问题创建富有表现力和可靠的解决方案。...

    21天学通JavaScript(第2版)

    第一篇完整地讲解了javascript的基础知识,主要内容包括javascript概述、数据类型、常量与变量、表达式与运算符、程序语句、函数和数组等。第二篇专门介绍javascript中内置对象的应用,内容包括javascript对象基础、...

    oop-javascript

    面向对象的Javascript学生须知大图景您将构建一个从提供的数据以及用户输入数据派生的信息图。 面向对象的javascript非常适合处理复杂的数据,但是如果没有用于交互的界面,它的作用就不大了。 您将从表单中获取信息...

    JavaScript面向对象编程指南

     数据类型、操作符以及流程控制语句;  函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;  BOM 、DOM、浏览器事件、AJAX和JSON;  如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有...

    Udacity-Intermediate-JS-OOP-Dino:比较您的身高,体重和饮食与一些有趣的事实。 使用功能混合来扩展多个来源的属性和方法

    Dino Info-Udacity中级JavaScript Nanodegree的OOP编程项目 描述 该项目将人类(使用者)的身高(以英制或公制为单位),体重和饮食与各种恐龙事实进行了比较。 主要目的是在获得DOM经验的同时,扩展我对创建对象的...

    JavaScript 思维导图

    javascript 思维导图 (变量,数据类型,运算符和表达式,函数 ,全局函数,分支结构,循环结构,数组,String,正则表达式,Math,Date,Error,OOP,Es5)

    algor-in-js:使用Javascript实现的各种基本数据结构和算法

    JavaScript本身是一种更美观,灵活和友好的语言,其原因如下: 得益于node,它随处可见 花括号最好,要有清晰的代码块和作用域 事件驱动使用JS编写的项目更易于访问和有趣 弱类型使操作更直观(嗯...我仍然喜欢...

    TechniqueDeProgWEB1:课程内容和练习

    WEB编程技术1课程是第一节课程,旨在介绍WEB项目的编程技术(算法,OOP,结构化编程,数据类型,变量,条件测试,循环和基本功能等)。 学生将能够使用Web编程语言进行基本编程。 鼓励学生尝试和掌握“方法和图书馆...

    JavaScript.jpeg

    JavaScript思维导图,介绍,变量,函数,数据类型及转换,运算符,正则表达式,,分支结构,循环结构,数组,内置对象,string,date,oop,es5,es6帮助你构建自己知识树

    JavaScript面向对象的程序设计(犯迷糊的小羊)

    本章开始进入JavaScript核心知识点的高级部分——面向对象的程序设计,这一部分的内容将会对对象这一数据类型做进一步的深化理解,并且讲述几种创建对象的设计模式以及JavaScript独特的继承机制; 1.理解对象和面向...

    深入理解JavaScript中的对象

    JavaScript是一种面向对象编程(OOP)语言。一种编程语言可以被称为面向对象的,它为开发者提供了四...对象的属性可以是任何三种基本数据类型的,或者任何抽象数据类型,如另一个对象。对象属性通常是内部使用的对象的方

    matlab购物车代码-ObjectOrientedProgrammingBasics:面向对象的编程基础〜OOP的开始

    面向对象编程(OOP)是一种基于“对象”概念的编程范例,它可以包含字段(通常称为属性)形式的数据和过程(通常称为方法)形式的代码)。 对象的功能是对象的过程,可以访问并经常修改与它们相关联的对象的数据字段...

    php网络开发完全手册

    12.2 JavaScript的数据类型 183 12.3 JavaScript程序设计基础 184 12.3.1 在HTML中嵌入JavaScript 184 12.3.2 变量 185 12.3.3 注释 185 12.3.4 函数的定义与调用 186 12.3.5 条件语句 186 12.3.6 循环语句 189 12.3...

    基于Python的学习路线规划

    学习Python的基础语法,包括变量、数据类型、控制流程等。 理解函数、模块和包的概念及其使用。 掌握异常处理和文件操作。 进阶学习: 学习面向对象编程(OOP)的原则和实践。 深入理解Python的高级特性,如迭代器、...

    Estrutura-de-Dados-em-Java:Java中的数据结构资料存储库,包含数据结构学科的主要主题。 ED课程

    #WARDS: 我正在重新构建此存储库并创建一个网页( )以介绍人物和动画。 所有代码已移至“代码”文件夹。和我一起上课吗?... 换句话说,我们从使用原始类型(例如Integer,Character和其他类型)的级

    asp.net知识库

    与DotNet数据对象结合的自定义数据对象设计 (一) 数据对象与DataRow ASP.NET中大结果集的分页[翻译] .net 2.0 访问Oracle --与Sql Server的差异,注意事项,常见异常 Ado.net 与NHibernate的关系? 动态创建数据库...

    ecmascript-examples:ECMAscript ES5-ES8的示例

    原始数据类型,值和参考 类型转换 变量-var,let和const 运营商 变量的功能和范围 使用console.log输出 控制流程和循环 Chrome中的调试器 If和Else控制指令 每个指令 而控制指令 对于控制指令 职能 函数的定义。 ...

Global site tag (gtag.js) - Google Analytics