javascript基础知识6~10

6、JavaScript 变量
JavaScript 变量是存储数据值的容器。

在本例中,x、y 和 z 是变量:

实例

var x = 7;
var y = 8;
var z = x + y; 

亲自试一试
从上例中,您可获得:

x 存储值 7
y 存储值 8
z 存储值 15
类似代数
在本例中,price1、price2 以及 total 是变量:

实例

var price1 = 7;
var price2 = 8;
var price3 = 12;
var total = price1 + price2 + price3;

亲自试一试
在编程中,类似代数,我们使用变量(比如 price1)来存放值。

在编程中,类似代数,我们在表达式中使用变量(total = price1 + price2)。

从上例中,您可以算出 total 的值是 15。

提示:JavaScript 变量是存储数据值的容器。

JavaScript 标识符
所有 JavaScript 变量必须以唯一的名称的标识。

这些唯一的名称称为标识符。

标识符可以是短名称(比如 x 和 y),或者更具描述性的名称(age、sum、totalVolume)。

构造变量名称(唯一标识符)的通用规则是:

名称可包含字母、数字、下划线和美元符号
名称必须以字母开头
名称也可以 $ 和 _ 开头(但是在本教程中我们不会这么做)
名称对大小写敏感(y 和 Y 是不同的变量)
保留字(比如 JavaScript 的关键词)无法用作变量名称
提示:JavaScript 标识符对大小写敏感。

赋值运算符
在 JavaScript 中,等号(=)是赋值运算符,而不是“等于”运算符。

这一点与代数不同。下面的代码在代数中是不合理的:

x = x + 5
然而在 JavaScript 中,它非常合理:把 x + 5 的值赋给 x。

(计算 x + 5 的值并把结果放入 x 中。x 的值递增 5。)

注释:JavaScript 中的“等于”运算符是 ==。

JavaScript 数据类型
JavaScript 变量可存放数值,比如 100,以及文本值,比如 “Bill Gates”。

在编程中,文本值被称为字符串。

JavaScript 可处理多种数据类型,但是现在,我们只关注数值和字符串值。

字符串被包围在双引号或单引号中。数值不用引号。

如果把数值放在引号中,会被视作文本字符串。

实例

var pi = 3.14;
var person = "Bill Gates";
var answer = 'How are you!';

亲自试一试
声明(创建) JavaScript 变量
在 JavaScript 中创建变量被称为“声明”变量。

您可以通过 var 关键词来声明 JavaScript 变量:

var carName;
声明之后,变量是没有值的。(技术上,它的值是 undefined。)

如需赋值给变量,请使用等号:

carName = “porsche”;
您可以在声明变量时向它赋值:

var carName = “porsche”;
在上面的例子中,我们创建了名为 carName 的变量,并向其赋值 “porsche”。

然后,我们在 id=“demo” 的 HTML 段落中“输出”该值:

实例

<p id="demo"></p>

<script>
var carName = "porsche";
document.getElementById("demo").innerHTML = carName; 
</script>

提示:在脚本的开头声明所有变量是个好习惯!

一条语句,多个变量
您可以在一条语句中声明许多变量。

以 var 作为语句的开头,并以逗号分隔变量:

var person = "Bill Gates", carName = "porsche", price = 15000;

亲自试一试
声明可横跨多行:

var person = "Bill Gates",
carName = "porsche",
price = 15000;

亲自试一试
Value = undefined
在计算机程序中,被声明的变量经常是不带值的。值可以是需被计算的内容,或是之后被提供的数据,比如数据输入。

不带有值的变量,它的值将是 undefined。

变量 carName 在这条语句执行后的值是 undefined:

实例
var carName;
亲自试一试
重复声明 JavaScript 变量
如果再次声明某个 JavaScript 变量,将不会丢它的值。

在这两条语句执行后,变量 carName 的值仍然是 “porsche”:

实例

var carName = "porsche";
var carName; 

亲自试一试
JavaScript 算术
与代数类似,您能够通过 JavaScript 变量进行算术运算,使用 = 和 + 之类的运算符:

实例

var x = 3 + 5 + 8;

亲自试一试
字符串也可以使用加号,但是字符串将被级联:

实例

var x = "Bill" + " " + "Gates";

亲自试一试
还可以试试这个:

实例

var x = "8" + 3 + 5;

亲自试一试
提示:如果把要给数值放入引号中,其余数值会被视作字符串并被级联。

现在试试这个:

实例

var x = 3 + 5 + "8";

7、JavaScript 运算符
实例
向变量赋值,并把它们相加:

var x = 7;		// 向 x 赋值 5
var y = 8;		// 向 y 赋值 2
var z = x + y;		// 向 z (x + y) 赋值 7

亲自试一试
赋值运算符(=)把值赋给变量。

赋值
var x = 15;
亲自试一试
加法运算符(+)对数字相加:

加法

var x = 7;
var y = 8;
var z = x + y;

亲自试一试
乘法运算符(*)对数字相乘:

乘法

var x = 7;
var y = 8;
var z = x * y; 

亲自试一试
JavaScript 算数运算符
算数运算符用于对数字执行算数运算:

运算符 描述

  • 加法
  • 减法
  • 乘法
    / 除法
    % 取模(余数)
    ++ 递加
    – 递减
    注释:JS 算数这一章对算数运算符进行了完整描述。

JavaScript 赋值运算符
赋值运算符向 JavaScript 变量赋值。

运算符 例子 等同于
= x = y x = y
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= y x = x % y
加法赋值运算符(+=)向变量添加一个值。

赋值
var x = 7;
x += 8;
亲自试一试
注释:JS 赋值这一章中完整描述了赋值运算符。

JavaScript 字符串运算符

  • 运算符也可用于对字符串进行相加(concatenate,级联)。

实例

txt1 = "Bill";
txt2 = "Gates";
txt3 = txt1 + " " + txt2; 
txt3 的结果将是:

Bill Gates

亲自试一试
+= 赋值运算符也可用于相加(级联)字符串:

实例

txt1 = "Hello ";
txt1 += "Kitty!"; 
txt1 的结果将是:

Hello Kitty!

亲自试一试
提示:在用于字符串时,+ 运算符被称为级联运算符。

字符串和数字的相加
相加两个数字,将返回和,但对一个数字和一个字符串相加将返回一个字符串:

实例

x = 7 + 8;
y = "7" + 8;
z = "Hello" + 7;
x、y 和 z 的结果将是:

15
78
Hello7

亲自试一试
提示:如果您对数字和字符串相加,结果将是字符串!

JavaScript 比较运算符
运算符 描述
== 等于
=== 等值等型
!= 不相等
!== 不等值或不等型

大于
< 小于
= 大于或等于
<= 小于或等于
? 三元运算符
注释:JS 比较这一章中完整描述了比较运算符。

JavaScript 逻辑运算符
运算符 描述
&& 逻辑与
|| 逻辑或
! 逻辑非
注释:JS 比较这一章中完整描述了逻辑运算符。

JavaScript 类型运算符
运算符 描述
typeof 返回变量的类型。
instanceof 返回 true,如果对象是对象类型的实例。
注释:JS 类型转换这一章完整描述了类型运算符。

JavaScript 位运算符
位运算符处理 32 位数。

该运算中的任何数值运算数都会被转换为 32 位的数。结果会被转换回 JavaScript 数。

运算符 描述 例子 等同于 结果 十进制
& 与 5 & 1 0101 & 0001 0001 1
| 或 5 | 1 0101 | 0001 0101 5
~ 非 ~ 5 ~0101 1010 10
^ 异或 5 ^ 1 0101 ^ 0001 0100 4
<< 零填充左位移 5 << 1 0101 << 1 1010 10

有符号右位移 5 >> 1 0101 >> 1 0010 2

零填充右位移 5 >>> 1 0101 >>> 1 0010 2
上例使用 4 位无符号的例子。但是 JavaScript 使用 32 位有符号数。

因此,在 JavaScript 中,~ 5 不会返回 10,而是返回 -6。

~00000000000000000000000000000101 将返回 11111111111111111111111111111010。

注释:我们将在 JS 位运算这一章为您详解位运算符。
8、JavaScript 算数运算符
算术运算符对数值(文字或变量)执行算术运算。
在这里插入图片描述
算数运算符
典型的算术运算会操作两个数值。

这两个数可以是字面量:

实例
var x = 7 + 8;
亲自试一试
或变量:

实例
var x = a + b;
亲自试一试
或表达式:

实例
var x = (7 + 8) * a;
亲自试一试
运算符和操作数
在算术运算中,数被称为操作数。

(两个操作数之间执行的)运算由运算符定义。

操作数 运算符 操作数
7 + 8
加法
加法运算符(+)加数:

var x = 7;
var y = 8;
var z = x + y;
亲自试一试
减法
减法运算符(-)减数。

var x = 7;
var y = 8;
var z = x - y;
亲自试一试
乘法
乘法运算符(*)乘数。

var x = 7;
var y = 8;
var z = x * y;
亲自试一试
除法
除法运算符(/)除数。

var x = 7;
var y = 2;
var z = x / y;
亲自试一试
系数
系数运算符(%)返回除法的余数。

var x = 7;
var y = 2;
var z = x % y;
亲自试一试
注释:在算术中,两个整数的除法产生商和余数。

注释:在数学中,模运算的结果是算术除法的余数。

递增
递增运算符(++)对数值进行递增。

var x = 7;
x++;
var z = x;
亲自试一试
递减
递减运算符(–)对数值进行递减。

var x = 7;
x–;
var z = x;
亲自试一试

取幂运算符(**)将第一个操作数提升到第二个操作数的幂。

实例
var x = 5;
var z = x ** 2; // 结果是 25
亲自试一试
x ** y 产生的结果与 Math.pow(x,y) 相同:

实例

var x = 5;
var z = Math.pow(x,2);   // 结果是 25

亲自试一试
运算符优先级
运算符优先级(Operator precedence)描述了在算术表达式中所执行操作的顺序。

实例

var x = 200 + 50 * 2;

亲自试一试
上例的结果是 250 * 2 还是 200 + 100 呢?

是加法还是乘法优先呢?

在传统的学校数学中,乘法是优先的。

乘法(*)和除法(%)比加法(+)和减法(-)拥有更高的优先级。

同时,(就像在学校的数学中那样)能够通过使用括号来改变优先级:

实例

var x = (200 + 50) * 2;

亲自试一试
当使用括号时,括号中的运算符会首先被计算。

当多个运算拥有相同的优先级时(比如加法和减法),对它们的计算是从左向右的:

实例

var x = 200 + 50 - 2;

9、JavaScript 赋值运算符
赋值运算符向 JavaScript 变量赋值。
赋值实例
= 赋值运算符向变量赋值。

赋值

var x = 7;

亲自试一试
+= 赋值运算符向变量添加值。

赋值

var x = 7;
x += 8; 

亲自试一试
-= 赋值运算符从变量中减去一个值。

赋值

var x = 7;
x -= 8; 

亲自试一试
*= 赋值运算符相乘变量。

赋值

var x = 7;
x *= 8; 

亲自试一试
/= 赋值运算符对变量相除。

赋值

var x = 7;
x /= 8;

亲自试一试
%= 赋值运算符把余数赋值给变量。

赋值

var x = 7;
x %= 8; 

10、JavaScript 数据类型
字符串值,数值,布尔值,数组,对象。
JavaScript 变量能够保存多种数据类型:数值、字符串值、数组、对象等等:

var length = 7; // 数字
var lastName = “Gates”; // 字符串
var cars = [“Porsche”, “Volvo”, “BMW”]; // 数组
var x = {firstName:“Bill”, lastName:“Gates”}; // 对象
数据类型的概念
在编程过程中,数据类型是重要的概念。

为了能够操作变量,了解数据类型是很重要的。

如果没有数据类型,计算机就无法安全地解决这道题:

var x = 911 + “Porsche”;
给 “Volvo” 加上 911 有意义吗?这么做会发生错误还是会产生一个结果?

JavaScript 会这样处理上面的例子:

var x = “911” + “Porsche”;
当数值和字符串相加时,JavaScript 将把数值视作字符串。

实例

var x = 911 + "Porsche";

亲自试一试
实例

var x = "Porsche" + 911;

亲自试一试
JavaScript 从左向右计算表达式。不同的次序会产生不同的结果:

JavaScript:

var x = 911 + 7 + "Porsche";

结果:

918Porsche
亲自试一试
JavaScript:

var x = "Porsche" + 911 + 7;

结果:

Porsche9117
亲自试一试
在第一个例子中,JavaScript 把 911 和 7 视作数值,直到遇见 “Porsche”。

在第二个例子中,由于第一个操作数是字符串,因此所有操作数都被视为字符串。

JavaScript 拥有动态类型
JavaScript 拥有动态类型。这意味着相同变量可用作不同类型:

实例

var x;               // 现在 x 是 undefined
var x = 7;           // 现在 x 是数值
var x = "Bill";      // 现在 x 是字符串值

亲自试一试
JavaScript 字符串值
字符串(或文本字符串)是一串字符(比如 “Bill Gates”)。

字符串被引号包围。您可使用单引号或双引号:

实例

var carName = "Porsche 911";   // 使用双引号
var carName = 'Porsche 911';   // 使用单引号

亲自试一试
您可以在字符串内使用引号,只要这些引号与包围字符串的引号不匹配:

实例

var answer = "It's alright";             // 双引号内的单引号
var answer = "He is called 'Bill'";    // 双引号内的单引号
var answer = 'He is called "Bill"';    // 单引号内的双引号

亲自试一试
您将在本教程中学到更多有关字符串的知识。

JavaScript 数值
JavaScript 只有一种数值类型。

写数值时用不用小数点均可:

实例

var x1 = 34.00;     // 带小数点
var x2 = 34;        // 不带小数点

亲自试一试
超大或超小的数值可以用科学计数法来写:

实例

var y = 123e5;      // 12300000
var z = 123e-5;     // 0.00123

亲自试一试
您将在本教程中学到更多有关数值的知识。

JavaScript 布尔值
布尔值只有两个值:true 或 false。

实例

var x = true;
var y = false;

亲自试一试
布尔值经常用在条件测试中。

您将在本教程中学到更多有关条件测试的知识。

JavaScript 数组
JavaScript 数组用方括号书写。

数组的项目由逗号分隔。

下面的代码声明(创建)了名为 cars 的数组,包含三个项目(汽车品牌):

实例

var cars = ["Porsche", "Volvo", "BMW"];

亲自试一试
数组索引基于零,这意味着第一个项目是 [0],第二个项目是 [1],以此类推。

您将在本教程中学到更多有关数组的知识。

JavaScript 对象
JavaScript 对象用花括号来书写。

对象属性是 name:value 对,由逗号分隔。

实例

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

亲自试一试
上例中的对象(person)有四个属性:firstName、lastName、age 以及 eyeColor。

您将在本教程中学到更多有关对象的知识。

typeof 运算符
您可使用 JavaScript 的 typeof 来确定 JavaScript 变量的类型:

typeof 运算符返回变量或表达式的类型:

实例

typeof ""                  // 返回 "string"
typeof "Bill"              // 返回 "string"
typeof "Bill Gates"          // 返回 "string"

亲自试一试
实例

typeof 0                   // 返回 "number"
typeof 314                 // 返回 "number"
typeof 3.14                // 返回 "number"
typeof (7)                 // 返回 "number"
typeof (7 + 8)             // 返回 "number"

亲自试一试
typeof 运算符对数组返回 “object”,因为在 JavaScript 中数组属于对象。

Undefined
在 JavaScript 中,没有值的变量,其值是 undefined。typeof 也返回 undefined。

实例

var person;                  // 值是 undefined,类型是 undefined

亲自试一试
任何变量均可通过设置值为 undefined 进行清空。其类型也将是 undefined。

实例

person = undefined;          // 值是 undefined,类型是 undefined

亲自试一试
空值
空值与 undefined 不是一回事。

空的字符串变量既有值也有类型。

实例

var car = "";                // 值是 "",类型是 "string"

亲自试一试
Null
在 JavaScript 中,null 是 “nothing”。它被看做不存在的事物。

不幸的是,在 JavaScript 中,null 的数据类型是对象。

您可以把 null 在 JavaScript 中是对象理解为一个 bug。它本应是 null。

您可以通过设置值为 null 清空对象:

实例

var person = null;           // 值是 null,但是类型仍然是对象

亲自试一试
您也可以通过设置值为 undefined 清空对象:

实例

var person = undefined;     // 值是 undefined,类型是 undefined

亲自试一试
Undefined 与 Null 的区别
Undefined 与 null 的值相等,但类型不相等:

typeof undefined              // undefined
typeof null                   // object
null === undefined            // false
null == undefined             // true

亲自试一试
原始数据
原始数据值是一种没有额外属性和方法的单一简单数据值。

typeof 运算符可返回以下原始类型之一:

string
number
boolean
undefined
实例

typeof "Bill"              // 返回 "string"
typeof 3.14                // 返回 "number"
typeof true                // 返回 "boolean"
typeof false               // 返回 "boolean"
typeof x                   // 返回 "undefined" (假如 x 没有值)

亲自试一试
复杂数据
typeof 运算符可返回以下两种类型之一:

function
object
typeof 运算符把对象、数组或 null 返回 object。

typeof 运算符不会把函数返回 object。

实例

typeof {name:'Bill', age:62} // 返回 "object"
typeof [1,2,3,4]             // 返回 "object" (并非 "array",参见下面的注释)
typeof null                  // 返回 "object"
typeof function myFunc(){}   // 返回 "function"

亲自试一试
typeof 运算符把数组返回为 “object”,因为在 JavaScript 中数组即对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值