JavaScript变量
本质:
变量式程序在内存中申请的一块存放数据的空间
变量的使用:
-
声明变量
语法: var 变量名;
var是js的关键字,用来声明变量variable,计算机自动分配内存 -
赋值变量
语法: 变量名=变量值;
把右面的值赋给左面。 -
变量的初始化
声明并赋值
语法:var 变量名=变量值;
代码示例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<Script>
var age1;
age1=5;
alert(age1);
var age2=10;
alert(age2);
</Script>
</head>
<body>
</body>
</html>
结果显示:
语法扩展
更新变量
age=5;
age=10;
最终age为10;
声明多个变量
var 变量1=值1,变量2=值2,变量3=值3;
声明变量的特殊情况
声明不赋值,报unfined
不声明不赋值和,报错
不声明,直接使用,可使用(变成全局变量)
当您声明新变量时,可以使用关键词 “new” 来声明其类型:
var carname=new String;
var x= new Number;
var y= new Boolean;
var cars= new Array;
var person= new Object;
局部 JavaScript 变量
在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。(该变量的作用域是局部的)。
您可以在不同的函数中使用名称相同的局部变量,因为只有声明过该变量的函数才能识别出该变量。
只要函数运行完毕,本地变量就会被删除。
全局 JavaScript 变量
在函数外声明的变量是全局变量,网页上的所有脚本和函数都能访问它。
向未声明的 JavaScript 变量分配值
如果您把值赋给尚未声明的变量,该变量将被自动作为 window 的一个属性。
这条语句:
carname=“Volvo”;
将声明 window 的一个属性 carname。
非严格模式下给未声明变量赋值创建的全局变量,是全局对象的可配置属性,可以删除。
数据类型
js里的数据类型分两大类,简单数据类型和复杂数据类型。
复杂数据类型一般指定义的类
简单数据类型包括数字,字符串,布尔
复杂数据类型一般为三种,自定义类,内置对象,web类。
由键盘获取的值通常为字符串,可转化为其他形式使用。
javascript语法
JavaScript 字面量
在编程语言中,一般固定值称为字面量
- 数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。
- 字符串(String)字面量 可以使用单引号或双引号:
- 表达式字面量 用于计算
- 数组(Array)字面量 定义一个数组
- 对象(Object)字面量 定义一个对象
- 函数(Function)字面量 定义一个函数
在 HTML 中,JavaScript 语句向浏览器发出的命令。
语句是用分号分隔:
x = 5 + 6;
y = x * 10;
JavaScript 关键字
JavaScript 关键字用于标识要执行的操作。
和其他任何编程语言一样,JavaScript 保留了一些关键字为自己所用。
JavaScript 数据类型
JavaScript 有多种数据类型:数字,字符串,数组,对象等等:
var length = 16; // Number 通过数字字面量赋值
var points = x * 10; // Number 通过表达式字面量赋值
var lastName = “Johnson”; // String 通过字符串字面量赋值
var cars = [“Saab”, “Volvo”, “BMW”]; // Array 通过数组字面量赋值
var person = {firstName:“John”, lastName:“Doe”}; // Object 通过对象字面量赋值
JavaScript 函数
JavaScript 语句可以写在函数内,函数可以重复引用:
引用一个函数 = 调用函数(执行函数内的语句)。
function myFunction(a, b) {
return a * b; // 返回 a 乘以 b 的结果
}
JavaScript 字母大小写
JavaScript 对大小写是敏感的。
JavaScript 语句
- JavaScript 语句是发给浏览器的命令。
- 分号用于分隔 JavaScript 语句。使用分号的另一用处是在一行中编写多条语句。
- JavaScript 代码是 JavaScript 语句的序列。
- 代码块的作用是一并地执行语句序列。
function myFunction()
{
document.getElementById("demo").innerHTML="你好Dolly";
document.getElementById("myDIV").innerHTML="你最近怎么样?";
}
-
JavaScript 语句标识符
-
JavaScript 会忽略多余的空格。
-
可以在文本字符串中使用反斜杠对代码行进行换行。
document.write("你好 \
世界!");
不过,您不能像这样折行:
document.write \
("你好世界!");
JavaScript 对象
在 JavaScript中,几乎所有的事物都是对象。
对象也是一个变量,但对象可以包含多个值(多个变量),每个值以 name:value 对呈现。
var car = {name:"Fiat", model:500, color:"white"};
可以说 “JavaScript 对象是变量的容器”。
但是,我们通常认为 “JavaScript 对象是键值对的容器”。
键值对通常写法为 name : value (键与值以冒号分割)。
键值对在 JavaScript 对象通常称为 对象属性。
访问对象属性
你可以通过两种方式访问对象属性:
实例 1
person.lastName;
实例 2
person["lastName"];
访问对象方法
你可以使用以下语法创建对象方法:
methodName : function() {
// 代码
}
你可以使用以下语法访问对象方法:
实例
objectName.methodName()
通常 fullName() 是作为 person 对象的一个方法, fullName 是作为一个属性。
如果使用 fullName 属性,不添加 (), 它会返回函数的定义:
JavaScript 作用域
作用域是可访问变量的集合。
在 JavaScript 中, 对象和函数同样也是变量。
在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。
JavaScript 类型转换string
number
boolean
object
function
symbol
3 种对象类型:
Object
Date
Array
2 个不包含任何值的数据类型:
null
undefined
typeof 操作符
typeof "John" // 返回 string
typeof 3.14 // 返回 number
typeof NaN // 返回 number
typeof false // 返回 boolean
typeof [1,2,3,4] // 返回 object
typeof {name:'John', age:34} // 返回 object
typeof new Date() // 返回 object
typeof function () {} // 返回 function
typeof myCar // 返回 undefined (如果 myCar 没有声明)
typeof null // 返回 object
constructor 属性返回所有 JavaScript 变量的构造函数
"John".constructor // 返回函数 String() { [native code] }
(3.14).constructor // 返回函数 Number() { [native code] }
false.constructor // 返回函数 Boolean() { [native code] }
[1,2,3,4].constructor // 返回函数 Array() { [native code] }
{name:'John', age:34}.constructor // 返回函数 Object() { [native code] }
new Date().constructor // 返回函数 Date() { [native code] }
function () {}.constructor // 返回函数 Function(){ [native code] }
异步编程
对于主线程来说,一旦堵塞,就卡住,无法使用。然而有些需求需要等待。所以我们需要用子线程来代替,因为子线程堵塞不会影响主线程。为避免同步失效,我们使用异步编程,及告诉子线程运行完之后,应该干什么。
Promise 是一个 ECMAScript 6 提供的类,目的是更加优雅地书写复杂的异步任务。
- 构造 Promise 现在我们新建一个 Promise 对象:
new Promise(function (resolve, reject) {
// 要做的事情...
});
- Promise 的使用
new Promise(function (resolve, reject) {
console.log("Run");
});
resolve 和 reject 都是函数,其中调用 resolve 代表一切正常,reject 是出现异常时所调用的:
- Promise 类有 .then() .catch() 和 .finally() 三个方法,这三个方法的参数都是一个函数,.then() 可以将参数中的函数添加到当前 Promise 的正常执行序列,.catch() 则是设定 Promise 的异常处理序列,.finally() 是在 Promise 执行的最后一定会执行的序列。 .then() 传入的函数会按顺序依次执行,有任何异常都会直接跳到 catch 序列:
- Promise 函数
返回值为一个 Promise 对象的函数称作 Promise 函数,它常常用于开发基于异步操作的库。