javascript 类型概述

在javascript中,变量的类型可以分为2个大类:1)原始类型(primitive type)      2) 引用类型(reference type)

它们之间的区别在于:

1)原始类型(primitive type):

      数据存储在栈(stack)中,既变量可以直接访问到数据。

2) 引用类型(reference type):

      数据存储在堆(heap)中,变量访问到的是一个指针,指针指向存储该对象的内存。

 

一. 原始类型

JS的原始类型(primitive type)又可以分为5大类:underfined, null, boolean, Number, String

我们可以使用typeof 变量,来输出变量的类型。

1) undefined

      当声明一个变量却没有初始化时,该变量默认是undefined.

//1. undefined type
var aa;
alert(typeof aa);
alert(aa == undefined);

输出:

undefined

true

 

2) null

Null表示的是不存在的对象,虽然它与undefined不同,但是javascript中,undefined从null派生出来,因此如下判断

alert(null == undefined); 返回的还是true。

 

3) boolean

1 var bFound = true;
2 var bLost = false;
3 alert(typeof bFound);
4 alert(typeof bLost);
5 alert(bFound);
6 alert(bLost);

输出:

boolean

boolean

true

false

 

4) number

      在javascript中任何数字,包括整数和浮点数都是number类型。

1 var a = 518;
2 var b = 88.88;
3 alert(typeof a);
4 alert(typeof b);

 输出:

number

number

 

5) string

 

var s = "test";
alert(typeof s);

alert(s.length);

输出:

string

4

 

 二. 类型转换

1)转换成string

number 和 boolean类型可以通过toString()转换成string型,但是undefined和null类型不能转换,但是undefined和null却可以通过

alert输出。

如果想把任何类型转换成字符串,必须使用 String(变量) 函数。

2) 转换成数字

可以有2个函数分别转换成整数和浮点数。

      a) parseInt()

1 alert(parseInt("1234blue"));    
2 alert(parseInt("0xA"));        
3 alert(parseInt("22.5"));        
4 alert(parseInt("12blue34"));    
5 alert(parseInt("blue34"));        

 输出:

1234

10

22
12

NaN (Not a Number,表示不是一个数字)

 

      b) parseFloat()

1 alert(parseFloat("1234blue"));    
2 alert(parseFloat("0xA"));                
3 alert(parseFloat("22.5"));                
4 alert(parseFloat("0908"));                
5 alert(parseFloat("blue34"));        

输出:

1234

0

22。5

908

NaN

 3)转换成布尔型

      采用Boolean()函数,记住一下几点:

            非空字符串,数字,对象,都是true; 空字符串,0,null都是false。

 

1 alert(Boolean(""));
2 alert(Boolean(0));
3 alert(Boolean(null));

5 alert(Boolean("test"));
6 alert(Boolean("0"));
7 alert(Boolean(100));
8 alert(Boolean(new Object()));

输出:

false

false

false

 

true

true

true

true

 

 三. 引用类型

1) Object类

       javascript中的Object类和Java中的java.lang.Object类相似,是所有类的父类。

2)其他一些类

    Boolean, Number, String

instanceof 函数可以判断一个对象是不是某一个类的实例。

1 var s1 = new String("Hello");
2 var s2 = "Hi";
3 alert(s1 instanceof String);
4 alert(s2 instanceof String);

 输出:

true

false

 

delete运算符

可以删除定义的属性或方法

 

 

 

 

 

 

 

时间: 2024-10-16 00:28:37

javascript 类型概述的相关文章

JavaScript类型检测之typeof 和 instanceof 的缺陷与优化_javascript技巧

在javascript中,typeof 和 instanceof 是用来判断数据类型比较通用的两个方法,这篇文章的目的是通过对这两个方法介绍来分析其存在的不足并提出优化方案. typeof -------------------------------------------------------------------------------- typeof 返回一个表达式的数据类型的字符串,返回结果为javascript中的基本数据类型,包括:number.boolean.string.o

为JavaScript类型增加方法的实现代码(增加功能)_javascript技巧

javaScript的类型函数(如Number/String/Boolean/Array/Date/Obejct等)都是继承于 Function.prototype,所以给Function.prototype增加方法,同时也会影响到由它衍生的下层类型函数.如: 复制代码 代码如下: Function.prototype.addMethod=function(methodName,func){ if(!this[methodName]){ this[methodName]=func;//给类型增加

JavaScript权威设计--JavaScript类型,值,变量(简要学习笔记三)

1.负号是一元求反运算 如果直接给数字直接量前面添加负号可以得到他们的负值     2.JavaScript中的运算超出了最大能表示的值不会报错,会显示Infinity. 超出最小也不报错,会显示-Infinity. 运算出的结果如果是个非数字的值得时候,用NaN表示.   3.字符串直接量拆分成数行 ECMAScript3中,字符串直接量必须下载一行中,而在ECMScript中,字符串直接量可以拆分成数行,每行必须以反斜线(\)介绍. 如:"two\lines"       &quo

【JavaScript】概述

JavaScript,又是一个新阶段的学习.不知道它是什么东西,如果光从英文翻译来看,其称作Java脚本语言.Java和.NET一样,都是现阶段流行常用的程序设计语言.那么,JavaScript是指Java语言下生成的脚本吗?没学习之前,就先从字面上自己做个猜想吧. 在学习JavaScript之前,想了想牛腩中是如何使用JavaScript的.牛腩中,有两集提到了JavaScript,第一个是31集,是为了实现出错页跳转到首页,有个倒计时的应用.第二个是46集,是介绍了JavaScript的一个

javascript 类型判断代码分析_javascript技巧

复制代码 代码如下: var is = function(obj,type){ var toString=Object.prototype.toString,undefined; return obj===null&&type==='Null'|| obj===undefined&&type==='Undefined'|| toString.call(obj).slice(8,-1)===type; } //原文中有小括号包裹每个逻辑与运算,但根据运算符优先级,括号可以省略

Javascript 类型转换方法_javascript技巧

Javascript中的变量同样支持自由类型转换成为适用(或者要求)的内容以便于使用. 弱类型的Javascript不会按照程序员的愿望从实际的变量类型到所需要的数据类型转换,例如一个非常常见的错误,在浏览器脚本中,从表单控件中获取用户将要输入的一个数值类型的变量与另一个数值变量的和.因为变量类型在表单控件中是字符串类型(计时字符串序列包含一个数字)这种尝试将会添加那个字符串到变量,即使这些值碰巧是一些数字,结果在第二个变量将会被转换为字符串类型,在最后只会把从表单控件中得到的变量添加到第一个字

JavaScript –类型之我晕

每次写博我觉得取上恬当的题目比整篇行文都难,词量有限的情况下突然想到JavaScript拾遗应该会是一个非常文艺而夺目的博文题目,但我并没有急着使用,经验告诉我应该先去搜一下看有没有被用过.果不其然,不搜不知道,一搜吓一跳. 不仅已经有JavaScript拾遗,JavaScript基础拾遗等题目的博文,而且更上一层楼的还有Javascript基础之贝海拾遗!看到这里我已然觉得高中每月买一本的<萌芽>真的是弱爆了.我要是早点融入到程序员的世界该多好,即学技术又没落下我追求文学的梦想. 看来我们程

Delphi语言学习3-数据类型概述

Delphi有如下数据类型: 1.简单数据类型: ordinal integer character Boolean enumerated subrange real 2.字符串类型 string 3.集合类型 set array record file class class reference interface 4.指针类型 pointer 5.函数类型 procedural 6.变量类型 Variant 7.类型声明 type identifier

JavaScript 类型的包装对象(Typed Wrappers)_js面向对象

例如: new Boolean(false) 会返回一个对象,该对象有一个 valueOf 方法会返回被包装的值.这其实完全没有必要,并且有时还令人困惑.不要使用 new Boolean. new Number 或 new String. 此外也请避免使用 new Object 和 new Array.可使用 {} 和 [] 来代替. --------------------------------------------------------------------------------