JavaScript学习2(ECMAScript)

JavaScript变量

本质:
变量式程序在内存中申请的一块存放数据的空间
变量的使用:

  1. 声明变量
    语法: var 变量名;
    var是js的关键字,用来声明变量variable,计算机自动分配内存

  2. 赋值变量
    语法: 变量名=变量值;
    把右面的值赋给左面。

  3. 变量的初始化
    声明并赋值
    语法: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 函数,它常常用于开发基于异步操作的库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值