1.JavaScript 数据类型
最新的 ECMAScript 标准定义了8种数据类型:
- 七种基本数据类型
- 布尔值(Boolean),有两个值分别是true和false;
- null , 一个表明 null 值的特殊关键字。 JavaScript 是大小写敏感的,因此 null 与 Null、 NULL或变体完全不同。
- undefined, 和null用于是一个特殊的关键字,undefined表示变量为定义时的属性
- 数字(Number. 整数和浮点数), 例如: 32 或者 3.14159。
- 任意精度的整数 (BigInt) ,可以安全地存储和操作大整数,甚至可以超过数字的安全整数限 制。
- 字符串(String), 字符串是一串表示文本值的字符序列, 例如:"hello world" 。
- 代表(Symbol) (在ECMAScript6中新添加的类型), 一种实例是唯一且不可改变的数据类型。
- 以及对象(Object).
虽然这些数据类型相对来说比较少,但是通过他们你可以在程序中开发有用的功能。对象(Objects)和函数(functions)是这门语言的另外两个基本元素。你可以把对象当作存放值的一个命名容器,然后将函数当作你的程序能够执行的步骤。
1.1:JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同的变量可用作不同的类型:
实例
var x; // x为undefined
var x = 5; //现在为数字
var x = "John" ; //x为字符串
1.2:JavaScript 字符串
字符串是存储字符(比如 "Bill Gates")的变量。
字符串可以是引号中的任意文本。您可以使用单引号或双引号:推荐使用单引号.
实例
var carname= "Volvo XC60";
var carname= 'Volvo XC60' ;
您可以在字符串中使用引号,只要不匹配包围字符串的引号即可.
实例
var answer="It's alright";
var answer="He is called 'Johnny'";
var answer='He is called "Johnny"';
1.3:JavaScript 数字
JavaScript 只有一种数字类型。数字可以带小数点,也可以不带:
实例
var x1=34.00; //使用小数点来写
var x2=34; //不使用小数点来写
极大或极小的数字可以通过科学(指数)计数法来书写:
实例
var y=123e5; // 12300000
var z=123e-5; // 0.00123
1.4:JavaScriptBigInt类型;
创建BigInt, 只需要将n附加到整数的末尾, 或者使用构造函数BigInt(数字);
BigInt
字面量也可以写成二进制、八进制或十六进制形式:
BigInt
数据类型是为了让JavaScript程序能表示超出Number
类型支持的数值范围。
console.log(546575675756756742343n)// 546575675756756742343n
var big = BigInt(43545)
console.log(big)//43545n
console.log(typeof big)// BigInt
1.5:JavaScript 布尔
布尔(逻辑)只能有两个值:true 或 false。
布尔值true转为数字为1, false转为数字为0;
布尔类型仅仅包含真假;
var x = true;
var y = false;
var a = 1,
b = 1;
console.log(x === y) // fasle;
console.log(a === b) //true
布尔常用在条件测试中。
1.6:JavaScript 数组
下面的代码创建名为 arr的数组:
var arr = ["43","434",43];
var arr_a = [4,43,54];
console.log(arr[0])// "43" 打印数组arr下标的第0项的值
console.log(arr.length)//3 数组的长度默认指定为元素的个数
当你使用数组字面量创建一个数组时,改数组将会以指定的值作为元素进行初始化.其长度被指定为元素达到个数
数组下标是基于零的,所以第一个项目是 [0],第二个是 [1],以此类推。
1.7:JavaScript 对象
对象由花括号分隔。在括号内部,对象的属性以名称和值对的形式 (name : value) 来定义。属性由逗号分隔:
上面例子中的对象 (person) 有三个属性:firstname、lastname 以及 id。
空格和折行无关紧要。声明可横跨多行:
var person = {firstname:"first", lastname:"last",id:"10001"}
console.log(person.firstname)//first
对象的属性名可以使用数字或者字符串作为属性的名字, 或者在另一个字面值内嵌套上字面值.
var arr = {myarr:{a:"hello", b:"world"}, 666:"小明"}
console.log(arr[666])//小明
对象的属性名可以是任意字符串,包括空字符串,如果对象的属性名名字是不合法的JavaScript标识符,
它必须使用""包裹,属性的名字不合法, 那么就不能使用.访问属性值, 而是通过类数组标记("[]")访问和赋值
var personName = {
"":"An empty string",
"!":"bang"
}
console.log(personName."");//Uncaught SyntaxError: Unexpected string 语法错误
console.log(personName[""]);//An empty string
console.log(personName.!);//Uncaught SyntaxError: Unexpected token '!' 语法错误
对象属性有两种寻址方式:
通过对象名.属性名获取属性值, 也可以通过对象名"[属性名"]获取;
var obj = {name:"wu",age:45};
console.log(obj.name)// wu;
console.log(obj["age"])//45
1.8:Undefined 和 Null
undefined这个值表示变量不含有值。undefined是一个表示"无"的原始值, 转为数字时为NaN;
undefined翻译过来就是未定义的意思,就是此处一个有一个值,但是还没有定义;
null是一个表示"无"的对象,转为数值时为0;null表示 没有对象, 即此处不应该有值
var unde;//声明一个变量如果没有赋值, 那么打印变量的值就是undefined;
var nl = null;
console.log(unde)//undefined
console.log(nl)// null
1.9:声明变量类型
当您声明新变量时,可以使用关键词 "new" 来声明其类型:一般使用字面量的方式声明变量
var carname = new String("str");
var arr = new Array(3,43,534,54)
var bollean = new Boolean(true);
var obj = new Object({name:"wu"});
var Number = new Number(43);
JavaScript 变量均为对象。当您声明一个变量时,就创建了一个新的对象。