网站地图    收藏   

主页 > 前端 > javascript >

JavaScript数据类型学习笔记详解

来源:自学PHP网    时间:2014-09-19 14:47 作者: 阅读:

[导读] 数据类型是每一门程序语言都会有的,js数据类型包括有:数字类型、字符串类型、布尔类型、表示一个变量未被赋值、空的对象下面我来给大家介绍一下。...

这里仅讲解5中简单数据类型,Function 和 Object 将在后续章节中讲解。


种基本数据类型

Number 数字类型
String 字符串类型
Boolean 布尔类型
Undefined 表示一个变量未被赋值
Null 空的对象

Number类型

Number 类型用来表示整数和浮点数。例如:
var x=100;Number 类型还有一个特殊值 NaN(非数值 Not a Number)。

NaN 用于表示一个本来要返回数值的操作并未返回数值,这样就不会抛出错误了。

String类型

String 即字符串类型,表示一串字符。字符串可以由双引号(" ")和单引号(' ')表示。

例如:

 代码如下 复制代码

var name="I'm Tom !";
var address=' I com from China ! ';

Boolean类型

Boolean 即布尔类型,只有两个值:true(真)和 false(假)。

Boolean 类型在流程控制语句中经常用到,例如:

 代码如下 复制代码
var x=true;
if(x){
    alert("x=true");
}

运行代码,弹出警告框,显示"x=true"。
Undefined类型
Undefined 类型的值只有一个,就是undefined。当一个变量被声明,但未被赋值时,它的值就是undefined。例如:

 代码如下 复制代码

var name;
alert(name);  // 显示 undefined

 点击这里调用一个未赋值的变量

Null类型
Null 类型的值只有一个,就是 null。null表示一个空的对象。

如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为 null 而不是其他值。
动态类型
JavaScript 是弱类型的语言,这就意味着,JavaScript 拥有动态类型,同一个变量可以赋予不同类型的值。这在C语言、C++和Java等强类型语言中是无法办到的。

下面的赋值是正确的:

 代码如下 复制代码

var demo=1;  // 这是Number类型
demo=true;  // 这是Boolean类型
demo="Hello";  // 这是String类型

var a;
c=new function(){var a=1;alert(typeof(a));};
alert(typeof(a));

结果为:number,undefined;

 代码如下 复制代码
var a=1;
c=new function(){alert(typeof(a));var a=1;};
alert(typeof(a));

结果为:undefined,number;

 代码如下 复制代码
var a;
c=new function(){alert(typeof(a));a=1;};
alert(typeof(a));

结果为:undefined,number;

 代码如下 复制代码

var a;

c=new function(){var a=1;alert(typeof(a));};

可以在c里面用this.a来访问全局变量a

============


说出它们的值

1、typeof(NaN) number、typeof(Infinity) number、typeof(null) object、typeof(undefined) undefined
2、NaN == NaN false
3、NaN != NaN true
4、NaN >= NaN false
5、null == undefined true
6、null >= undefined false
7、null <= undefined false
8、parseInt("123abc") 123
9、"123abc" - 0 NaN
10、Infinity > 10 true
11、Infinity > "abc" false
12、Infinity == NaN false
13、true == 1 ture
14、new String("abc") == "abc" true
15、new String("abc") === "abc" false 完全相同

关系运算符(<、>、<=、>=)

•试图将 expression1 和 expression2 都转换为数字。
•如果两表达式均为字符串,则按字典序进行字符串比较。
•如果其中一个表达式为 NaN,返回 false。
•负零等于正零。
•负无穷小于包括其本身在内的任何数。
•正无穷大于包括其本身在内的任何数。
相等运算符 (==、!=)

•如果两表达式的类型不同,则试图将它们转换为字符串、数字或 Boolean 量。
•NaN 与包括其本身在内的任何值都不相等。
•负零等于正零。
•null 与 null 和 undefined 相等。
•相同的字符串、数值上相等的数字、相同的对象、相同的 Boolean 值或者(当类型不同时)能被强制转化为上述情况之一,均被认为是相等的。
•其他比较均被认为是不相等的。
恒等运算符 (===、!==)

除了不进行类型转换,并且类型必须相同以外,这些运算符与相等运算符的作用是一样的。


说出它们的输出结果

1、

 代码如下 复制代码
var a = "123abc";
alert(typeof(a++)); string,++运算符在typeof时候没有执行
alert(a); NaN

2、a是string类型

 代码如下 复制代码
var a = "123abc";
a.valueOf = function(){return parseInt(a);}
alert(++a); NaN
alert(a-0); NaN

3、a是object类型

 代码如下 复制代码
var a = new Object();
a.toString = function(){return "123abc";}
a.valueOf = function(){return parseInt(a);}
alert(++a);124
alert(a-0);124

4、

 代码如下 复制代码
String.prototype.valueOf = function()
{
return parseFloat(this);
}
alert("123abc" > 122); false
alert(new String("123abc") > 122); true

5、

 代码如下 复制代码
var s = new String("abc");
alert(typeof(s) == typeof("abc"));false
alert(s === "abc");false
alert(s.toString() == s);true

6、

 代码如下 复制代码
var a = new Object();
a.toString = function(){return "a"};
var b = new Object();
b.toString = function(){return "b"};
alert(a>b);
a.valueOf = function(){return 1};
b.valueOf = function(){return 0};
alert(a>b);

7、

 代码如下 复制代码
function step(a)
{
return function(x)
{
return x + a++;
}
}
var a = step(10);
var b = step(20);
alert(a(10));
alert(b(10));

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论