一、值
1、值
计算机程序的运行需要对值进行操作,在javascript中值被分成了两大类:基本数据类型和引用数据类型.取得并使用值是所有程序设计中的要点。
2、字面量
形如 1 2 3 4 5等直接使用的值 我们称之为字面量
二、变量
1、变量
当程序需要将值保存起来以备将来使用时,便将其赋值给一个变量。变量是一个值的符号名称。可以通过名称来获得对值的引用。
在几乎所有的编程语言中,我们都会使用变量来作为值的符号名。变量的名字又叫做标识符,其需要遵守一定的规则。ECMAScript的变量是松散型的(即可以用来保存任何类型的值)。通俗一点的说,每个变量仅仅是一个用于保存值的占位符而已。
注意!!在javascript中变量是没有类型的,只有值才持有类型。!!也就是说javascript不做类型强制;语言引擎不要求变量总是持有与其初始值同类型的值。一个变量可以现在被赋值为字符串类型值,随后又被赋值为数字类型值。这是javascript作为动态语言的一个优势
2、标识符
- 一个 JavaScript 标识符必须以字母、下划线(_)或者美元符号($)开头
- 不能以数字开头
- 不能使用关键字,保留字
- 标识符一般都采用驼峰命名法
首字母小写,每个单词的开头字母大写,其余字母小写
代码示例:
<script type="text/javascript">
/*
* 标识符
* - 在JS中所有的可以由我们自主命名的都可以称为是标识符
* - 例如:变量名、函数名、属性名都属于标识符
* - 命名一个标识符时需要遵守如下的规则:
* 1.标识符中可以含有字母、数字、_、$
* 2.标识符不能以数字开头
* 3.标识符不能是ES中的关键字或保留字
* 4.标识符一般都采用驼峰命名法
* - 首字母小写,每个单词的开头字母大写,其余字母小写
* helloWorld xxxYyyZzz
*
*/
/*var if = 123;
console.log(if);*/
//千万不要这么用
var 锄禾日当午 = 789;
console.log(锄禾日当午);
</script>
3、声明变量
- 使用关键词 var。例如
var x = 42
用 var 关键字声明的变量,如果没有赋初始值,则其值为 undefined - 字面量形式(语法糖)
直接使用x=42
;
省略var声明的变量是全局变量。不推荐使用这种方式声明变量 - ECMAScript的变量是松散型的,即可以用来保存任何类型的值
- 我们也可以一次声明多个变量
var a=1,b=2,c,d=4;
代码示例:
<script type="text/javascript">
//字面量
console.log(1);
//变量
var a =1;
a = a+1;
console.log(a);
//语义
var age = 30;
var age =31;
console.log(age);
</script>
三、数据类型
1、数据类型
数据类型是值的内部特征,它定义了值的行为,以使其区别于其他的值,JavaScript 中的变量本身是没有类型,变量持有的是所对应的值的数据类型。
2、数据类型分类
JavaScript语言可以识别下面 7 种不同类型的值:
六种基本数据类型:
boolean. 布尔值,true 和 false.
null. 一个表明 null 值的特殊关键字。
undefined. 变量未定义时的属性。
Number. 表示数字,例如: 42 或者 3.14159。
String. 表示字符串,例如:"Howdy"
Symbol ( 在 ECMAScript 6 中新添加的类型).。
还有引用数据类型(对象)
数组
函数
Object
3、typeof运算符
1)语法
typeof a
or
typeof (a)
2)描述
类型 | 结果 |
---|---|
Undefined | “undefined” |
Null | “object” |
Boolean | “boolean” |
Number | “number” |
String | “string” |
Symbol (ECMAScript 6 新增) | “symbol” |
函数对象 | “function” |
任何其他对象 | “object” |
3)注意
typeof null === "object"; // true
正确的返回结果应该是 “null” ,但这个 bug 由来已久,在 javascript 中已经存在了将近二十年,也许永远也不会修复,因为这牵涉到太多的 Web 系统,修复它会产生更多的 bug,会令许多系统无法正常工作。
4)在对变量执行 typeof 操作时,得到的结果并不是该变量的类型,而是该变量持有的值的类型,因为 JavaScript 中的变量没有类型。
4、六种基本数据类型
Undefined
undefined类型只有一个值,即undefined。未初始化的变量,都是undefined类型。
<script type="text/javascript">
/*
* Null(空值)类型的值只有一个,就是null
* null这个值专门用来表示一个为空的对象
*
* Undefined(未定义)类型的值只有一个,就undefind
* 当声明一个变量,但是并不给变量赋值时,它的值就是undefined
*/
var a = null;
var b = undefined;
</script>
Null
null表示一个空对象指针,如果定义的变量准备在将来用于保存对象,那么最好将该变量初始化为null而不是其他值。
Boolean
布尔表示一个逻辑实体,可以有两个值:true 和 false。
<script type="text/javascript">
/*
* Boolean 布尔值
* 布尔值只有两个,主要用来做逻辑判断
* true
* - 表示真
* false
* - 表示假
*/
var bool = false;
console.log(bool);
</script>
Number
根据 ECMAScript 标准,JavaScript 中只有一种数字类型:基于 IEEE 754 标准的双精度数值。在其他编程语言中,有不同的数字类型存在,比如:整型,单精度浮点型,双精度浮点型等。但在javascript中只有Number类型,表示整数或者浮点数
Number类型中还有几个特殊的值:+Infinity,-Infinity 和 NaN (非数值,Not-a-Number)
<script type="text/javascript">
/*
* 在JS中所有的数值都是Number类型,
* 包括整数和浮点数(小数)
*
* JS中可以表示的数字的最大值
* Number.MAX_VALUE
* 1.7976931348623157e+308
*
* Number.MIN_VALUE 大于0的最小值
* 5e-324
*
* 如果使用Number表示的数字超过了最大值,则会返回一个
* Infinity 表示正无穷
* -Infinity 表示负无穷
* 使用typeof检查Infinity也会返回number
* NaN 是一个特殊的数字,表示Not A Number
* 使用typeof检查一个NaN也会返回number
*/
//数字123
var a = 123;
a = Number.MAX_VALUE * Number.MAX_VALUE;
a = -Number.MAX_VALUE * Number.MAX_VALUE;
console.log(a)//Infinity
a = Infinity;
a = "a"*"b";
console.log(a)//NaN
a = NaN;
a = Number.MIN_VALUE;
console.log(a)//5e-324 大于0的最小值
/*
* 在JS中整数的运算基本可以保证精确
*/
var c = 1865789 + 7654321;
/*
* 如果使用JS进行浮点运算,可能得到一个不精确的结果
* 所以千万不要使用JS进行对精确度要求比较高的运算
*/
var c = 0.1 + 0.2;
console.log(c);
</script>
String
JavaScript的字符串类型用于表示文本数据。
文本必须以双引号或单引号包围
<script type="text/javascript">
/*
* 数据类型指的就是字面量的类型
* 在JS中一共有六种数据类型
* String 字符串
* Number 数值
* Boolean 布尔值
* Null 空值
* Undefined 未定义
* Object 对象
*
* 其中String Number Boolean Null Undefined属于基本数据类型
* 而Object属于引用数据类型
*/
/*
* String字符串
* - 在JS中字符串需要使用引号引起来
* - 使用双引号或单引号都可以,但是不要混着用
* - 引号不能嵌套,双引号不能放双引号,单引号不能放单引号
*/
var str = 'hello';
str = '我说:"今天天气真不错!"';
/*
在字符串中我们可以使用\作为转义字符,
当表示一些特殊符号时可以使用\进行转义
\" 表示 "
\' 表示 '
\n 表示换行
\t 制表符
\\ 表示\
* */
str = "我说:\"今天\t天气真不错!\"";
str = "\\\\\\";
console.log(str);
</script>
Symbol
ES6引入了一种新的原始数据类型Symbol,表示独一无二的值。它是JavaScript 语言的第七种数据类型。
该类型的性质在于这个类型的值可以用来创建匿名的对象属性。该数据类型的值通常被用作一个对象属性的键, symbol 类型的键存在于各种内置的 JavaScript 对象中.
在 JavaScript 运行时环境中,symbol类型的值可以通过调用函数 Symbol() 创建。这个函数动态地生成了一个匿名,唯一的值。
<script>
var sym1 = Symbol("foo");
var sym2 = Symbol("bar");
console.log(typeof sym1,sym1);
console.log(sym1 === sym2,sym1,sym2);
var eat = Symbol("eat");
var obj ={
name:"damu",
wife:"zdy",
[eat]:function () {
console.log("eat")
}
}
console.log(obj[eat]())
</script>