JavaScript数据类型学习笔记详解

这里仅讲解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));
时间: 2024-09-12 14:00:24

JavaScript数据类型学习笔记详解的相关文章

JavaScript数据类型学习笔记分享_javascript技巧

本文实例为大家讲解JavaScript数据类型的相关资料,供大家参考,具体内容如下 1.引用类型 引用类型的值是引用类型的一个实例,引用类型是一种数据结构,用于将数据和功能组织在一起,也常被叫做类. 对象时某个特定引用类型的实例,新对象是使用new操作符后跟一个构造函数来创建的,构造函数本身就是函数,是出于创建新对象的目的而定义的.  var person = new Object(); 2.Object类型 (1)Object类型对于应用程序中存储和传输数据来说,是非常理想的选择. (2)Ob

oracle 创建job学习笔记详解

一:简单测试job的创建过程案例: 1,先创建一张JOB_TEST表,字段为a 日期格式  代码如下 复制代码 SQL> create table JOB_TEST(a date); Table created SQL> commit; Commit complete 2,创建一个存储过程 bb 作用是往pig表中插入数据  代码如下 复制代码 SQL> create or replace procedure JOB_PRO_TEST as   2  begin   3  insert

JavaScript匿名函数学习笔记详解

匿名函数,是指没有名称的函数.匿名函数可以传递参数,也可以赋值给一个变量. 在JavaScript中,有两种传值方式,按值传递和引用传递:     按值传递:赋值时是将数据本身传递给变量.     引用传递:将数据(代码块)的地址传递给变量,而不是数据(代码块)本身. 基本数据类型一般是按值传递,复杂数据类型一般是引用传递. 另一种定义函数的方式 来分析一个函数的定义:  代码如下 复制代码     function demo(){     // 函数主体部分     } 它的实质,是将函数主体

Javascript学习笔记-详解in运算符_javascript技巧

一.判断 语法 prop in objectName 如果objectName指向的对象中含有prop这个属性或者键值,in运算符会返回true. 复制代码 代码如下: var arr = ['one','two','three','four']; arr.five = '5'; 0 in arr;//true 'one' in arr; //false,只可判断数组的键值 'five' in arr;//true,'five'是arr对象的属性 'length' in arr;//true 原

Angular2学习笔记——详解NgModule模块_AngularJS

在Angular2中一个Module指的是使用@NgModule修饰的class.@NgModule利用一个元数据对象来告诉Angular如何去编译和运行代码.一个模块内部可以包含组件.指令.管道,并且可以将它们的访问权限声明为公有,以使外部模块的组件可以访问和使用到它们. 模块是用来组织应用的,通过模块机制外部类库可以很方便的扩展应用,Rc5之后,Angular2将许多常用功能都分配到一个个的模块中,如:FormModule.HttpModule.RouterModule. NgModule的

Angular2学习笔记——详解路由器模型(Router)_AngularJS

Angular2以组件化的视角来看待web应用,使用Angular2开发的web应用,就是一棵组件树.组件大致分为两类:一类是如list.table这种通放之四海而皆准的通用组件,一类是专为业务开发的业务组件.实际开发中大部分时间我们都需要处理业务组件.对于SPA应用来说,一个通用的问题就是如何控制页面的切换,解决这个问题的通用方法就是利用路由器来实现. 路由配置 现在我们先撇开Angular2来看看通用的路由器模型.通常来讲SPA应用需要路由配置信息: [ { path: '', pathMa

mysql 全文索引学习笔记详解

场景:需要做一个关于标题的模糊查询,只是记录有点多,而且需要相对精确,比如搜索:ac, 不能出现abc,可以接受acb,bac,之类. mysql全文搜索有三种模式: 一.自然语言查找.这是mysql默认的全文搜索方式,sql示例: [code=plain]  代码如下 复制代码 select  id,title FROM post WHERE MATCH(content) AGAINST ('search keyword') 或者显式声明使用自然语言搜索方式 [code=plain]  代码如

PHP单例模式学习笔记详解

1.单例模式的概念 顾名思义,单例模式只有一个实例,而且自行实例化,向全局提供这个实例.需要强调的是,单例模式 确保某个类只能有一个实例! 2.单例模式的三个要点 (1)需要一个静态变量来保存类的唯一实例  代码如下 复制代码 private static $_instance; (2)构造函数和克隆函数必须为私有的,防止用户创建对象和复制实例对象  代码如下 复制代码 private function __construct() { //私有化默认构造方法,防止外界直接实例化 } privat

xampp启用xdebug学习笔记详解

今天早上弄xdebug折腾了有一会,记录一下,以后好找. 环境:  代码如下 复制代码 Windows 7 Business Edition Service Pack 1(64位) XAMPP v3.2.1 这个版本的XAMPP,自带的php_debug.dll模块启用不了,总是报错,就去xdebug.org下载. 试了好几个版本才找到能用的 下好之后,一个个试,有的报错无法运行,有的不报错,但是phpinfo()里面没有显示已经加载了xdebug. 只有php_xdebug-2.2.3-5.4