JavaScript基本概念(变量和数据类型)

1. 变量

  在局部作用域中省略var操作符可以定义全局变量,但是这么做会导致该变量难以维护,且在严格模式下会导致抛出ReferenceError错误。

2. 数据类型(js共用6种数据类型,分别是 Undefined,Null,Boolean,Number,String,Object)

  2.1 typeof操作符

    对一个值使用typeof操作符可能会返回下列某个字符串:

□ "undefined" ---如果这个值未定义或者未初始化;

□ "boolean" ---如果这个值是布尔值;

□ "string" ---如果这个值是字符串;

□ "number" ---如果这个值是数值;

□ "object" ---如果这个值是对象或null;

□ "function" ---如果这个值是函数;

注:如果这个值是正则表达式,旧浏览器会返回"function",新浏览器会返回"object"。

2.2 Undefined类型

var message;  // 这个变量声明之后默认取得了 undefined 值
// 下面这个变量并没有声明
// var age;

alert(message);  // "undefined"
alert(age);  // 产生错误
alert(typeof message);  // "undefined"
alert(typeof age);  // "undefined"

  2.3 Null类型

① null值从逻辑上表示一个空对象指针,所以 typeof null 返回 "object";

② 实际上undefined值派生自null值,因此ECMA-262规定对它们的相等性测试要返回true,即 null == undefined 为true;

③ 当定义的变量在将来用于保存对象,那么最好将该变量初始化为null。

  2.4 Boolean类型

任何一种数据类型都可以调用Boolean()函数,在一些流控制语句(如if语句,while语句等)会自动执行相应的Boolean转换

数据类型 转换为true的值 转换为false的值
Boolean true false
String 任何非空字符串 ""(空字符串)
Number 任何非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined 不适用 undefined

  2.5 Number类型

2.5.1 整数

① 八进制数以0开头,若后面的数值超出范围,那么前导零将被忽略,后面的数值当成十进制数值解析(如 070解析为56;079解析为79),且八进制字面量在严格模式下是无效的,会报错。

2.5.2 浮点数值

① js保存浮点数值需要的内存空间是保存整数值的两倍(4*2=8字节),以下两种情况下浮点数会被解析成整数

var a = 1.;  // 小数点后面没有数字,解析为1
var b = 10.0  // 解析为10

  ② 浮点数值最高精度是17位小数,且进行算术运算时精确度远远不如整数,如0.1加0.2结果不是0.3 ,而是0.30000000000000004

  ③ 尽可能不用除法(/)和模(%)运算,因为大多数情况下它们直接导致出现浮点数。如果必须使用除法,立即用Math.round()方法回归整数运算。

2.5.3 数值范围

① ECMAScript能表示的最大值储存在Number.MAX_VALUE上;最小值储存在Number.MIN_VALUE上(能表示的最接近0的数,值为5e-324);超过这个范围视为无穷,其中正无穷表示为Infinity,负无穷表示为-Infinity,判断一个数是否是有穷的,可以使用 isFinite() 函数,返回true则是有穷的。

2.5.4 NaN

① NaN,即非数值是一个特殊的数值,这个数值用于表示一个本来要返回数值的操作数未返回数值的情况(这样就不会抛出错误了)

② 任何涉及NaN的操作(例如NaN/10)都会返回NaN,且NaN与任何值都不相等,包括NaN本身。

③ isNaN()函数接受一个任何数据类型的参数,该函数会帮我们确定这个参数是否能被转换为一个数值,且该函数用于对象时会自动调用对象的valueOf()方法,然后确定返回的值是否可以转换为数值,如果不能,则基于这个返回值再调用toString()方法,再测试返回值。

2.5.5 数值转换

Number(param):参数param可以是任何数值类型,其转换规则如下

① 如果是Boolean值,true和false分别转换为 1 和 0 。

② 如果是数字,只是简单的传入和返回。

③ 如果是null,返回0。

④ 如果是undefined,返回NaN。

⑤ 如果是字符串,遵循以下规则:

      • 如果字符串中只包含数字,则将其转换为十进制数值,且忽略前导零,如果是十六进制格式,则将其转换为想通大小的十进制整数;
      • 如果字符串为空,则将其转换为0;
      • 其余皆转换为NaN。

⑥ 如果是对象,先调用对象的valueOf()方法,然后依照前面的规则转换,如果转换的结果是NaN,则调用对象的toString()方法,然后再依照上面的规则转换。

parseInt(string, radix):参数string为字符串(可以为数字),radix为基数。转换时,它会忽略前面的空格,直至遇到第一个数字字符或者负号,若不是返回NaN,若是则继续解析第二个字符知道遇到非数字字符,另外,ECMAScript3识别以0开头的八进制数,ECMAScript5不识别,以下是例子。

以下结果均返回15:

parseInt(" 0xF", 16);
parseInt(" F", 16);
parseInt("17", 8);
parseInt(021, 8);   //注意这里021是数字不是字符串, parseInt("021", 8)返回的是17
parseInt("015", 10);
parseInt(15.99, 10);
parseInt("FXX123", 16);
parseInt("1111", 2);
parseInt("15*3", 10);
parseInt("15e2", 10);
parseInt("15px", 10);
parseInt("12", 13);

以下结果返回NaN

parseInt("Hello", 8);
parseInt("546", 2);

以下结果在ECMAScript3返回0,在ECMAScript5返回8

parseInt("08");

parseFloat(string):parseFloat()与parseInt()类似,但是它始终都会忽略前导的零,且解析十六进制给事的字符串始终会被转换成0,如果字符串包含的是一个可解析为整数的数,parseFloat()会返回整数。

2.5.6 String类型

① 字符串的特点:

var lang = "Java";
lang = lang + "Script";

以上示例中实现的操作过程如下:首先创建一个能容纳10个字符的新字符串,然后在这个字符串中填充"Java"和"Script",最后一步是销毁原来的字符串"Java"和字符串"Script",因为这两个字符串已经没用了。

② 转换为字符串:

toString():除了null和undefined,其他数值类型都有这个方法,多数情况下该方法不必传递参数。但是在调用数值的toString()方法时,可以传递一个参数:输出数值的基数。如

var num = 10;
alert(num.toString());  // "10"
alert(num.toString(2));  // "1010"
alert(num.toString(8));  // "12"
alert(num.toString(16));  // "a"

String(param):String()函数遵循下列转换规则:

      • 如果值有toString()方法,则调用该方法(没有参数)并返回相应的结果;
      • 如果值是null,则返回"null";
      • 如果值是undefined,则返回"undefined"。

2.5.7 Object类型

Object是所有对象的基础,因此所有对象都具有以下这些基本属性和方法:

constructor , hasOwnProperty(propertyName) , isPrototypeOf(object) , propertyIsEnumerable , toLocaleString() , toString() , valueOf()

时间: 2024-10-14 00:34:39

JavaScript基本概念(变量和数据类型)的相关文章

Web开发技术 ——JavaScript语法2(变量、数据类型、对象)

JavaScript 变量 变量是存储信息的容器. 实例 var x=2; var y=3; var z=x+y; 就像代数那样 x=2 y=3 z=x+y 在代数中,我们使用字母(比如 x)来保存值(比如 2). 通过上面的表达式 z=x+y,我们能够计算出 z 的值为 5. 在 JavaScript 中,这些字母被称为变量. 提示:您可以把变量看做存储数据的容器. JavaScript 变量 与代数一样,JavaScript 变量可用于存放值(比如 x=2)和表达式(比如 z=x+y). 变

JavaScript中的变量及数据类型

转自:http://blog.csdn.net/mygis2005/article/details/7375419 JavaScript是一种弱类型的语言,变量名.操作符和方法名都区分大小写. 1.变量定义 在JavaScript中,使用var来定义任何类型的变量,每一个变量只是用于保存数据的占位符. [javascript] view plaincopy var temp;   //这句代码定义了一个变量,但其类型是未知的,可以存放任何类型的值,没有初始化的时候,test中存储是undefin

JavaScript学习笔记——变量和数据类型

一.javascript命名规范 1. 严格区分大小写 2. 变量的命名必须以字母或 _或 $开头,余下的部分可以是任意的字母,数字,或者是 _或者是$ 3.不能用关键字或者是保留字命名. 4.javascript自己的命名习惯 驼峰命名法:getElementById 首字母大写:Object 5.命名一定要有意义. 6. ;的用法

JavaScript中基础变量和数据类型的定义

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

js基础--javascript基础概念之变量与作用域

js基础--javascript基础概念之变量.作用域 javascript按照ECMA-262 的定义,变量与其他语言变量有所不同.js变量时松散的,不需要事先定义变量类型的.这使得他只是一个保存特定值的一个名称.变量与其数据类型可以在脚本的生命周期内改变. 还有明白几点: JavaScript的变量作用域是基于其特有的作用域链的,JavaScript没有块级作用域. 基本类型和引用类型的值 ECMAScript 的变量有两种不同的数据类型:分别是 基本数据类型值 和 引用类型值 : 基本数据

JavaScript变量与数据类型详解

变量 变量来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念.变量可以通过变量名访问. 变量的作用就是用于存储值. 语法: 声明变量时,总是以关键字var打头.任何情况下都应该这样做.然后给变量指定名称.在声明变量时,也可以给它赋值,方法是在变量名后面加上等号和值.赋值语句总是以分号结束. var 变量名; //或 var 变量名 = 值; 说明:尽管省略关键字var,JavaScript也不会报错,但是这会导致变量变成全局变量,在JavaScript使用全局变量并不是一个好习惯.分号也

JavaScript(5)—— 变量及数据类型

JavaScript和Java在概念和设计方面都是完全不同的语言.JavaScript由Brendan Eich于1995年发明,并于1997年成为ECMA标准.ECMA-262是官方名称.ECMAScript 6(2015年6月发布)是JavaScript的最新官方版本. 在HTML中,必须在<script>和</ script>标记之间插入JavaScript代码.可以放在HTML页面的<body>和<head>部分. JavaScript可以以不同的方

轻松学习JavaScript五:JavaScript的变量和数据类型

对于一们编程语言,肯定包含变量和数据类型.今天我们就来看看JavaScript脚本语言的变量和数据类型.相对 于其他的Java,C++等高级程序语言,JavaScript显得很简单. 一变量 JavaScript的变量是松散类型的,所谓松散就是用来保存任何类型的数据.变量是存储信息的容器.定义变量时 要使用var操作符(var是关键字),后面跟一个变量名(变量名是标识符).变量也就是初始化后可以再次改变的量. 那么我们来看看实例: <span style="font-size:18px;&

JavaScript基本概念(二)--- 变量

变量 1. 变量定义 Javascript中使用var来定义变量,具体格式如下所示: var  name = 1; 如果只声明了变量而没有对变量进行初始化,那么此时变量的值就是undefined;(为什么是undefined请看变量第三节) 当然,也可以一次定义多个变量,如下所示: var a1 = 1, a2 = true, a3 = “张三”; 由于javascript中的变量是松散类型的,也就是我们所说的弱类型的变量,因此不同类型的初始化的变量可以放在一行进行: 在javascript中定

学习笔记(二)JavaScript基本概念(语法,数据类型,控制语句,函数)

一.语法 1.javascirpt中一切(变量,函数名和操作符)是严格区分大小写的. 2.javascript(标识符) 所谓标识符,就是指变量,函数,属性的名字,或者函数的参数. 命名规则:第一个字符必须是一个字母.下划线.美元符号,其它字符可以是字母.下划线.美元符号或数字. 不能把关键字,保留字,true,false和null用作标识符. 3.ECMAScript标识符采用驼峰大小写格式,也就是第一个字母小写,剩下的每个单词的首字母大写.(但是没有谁强制要求这个格式) 4.注释 //单行注