20240903uniapp学习工作-JS

如果 JavaScript 语句太长,对其进行折行的最佳位置是某个运算符:

这点以前做iOS 安卓开发没太注意

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

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

var carName = "porsche";
var carName; 

ES2015 引入了两个重要的 JavaScript 新关键词:let 和 const

这两个关键字在 JavaScript 中提供了块作用域(Block Scope)变量(和常量)。

在 ES2015 之前,JavaScript 只有两种类型的作用域:全局作用域函数作用域

通过 var 关键词声明的变量没有块作用域

在块 {} 内声明的变量可以从块之外进行访问。

{ 
  var x = 10; 
}
// 此处可以使用 x

可以使用 let 关键词声明拥有块作用域的变量。

在块 {} 内声明的变量无法从块外访问:

{ 
  let x = 10;
}
// 此处不可以使用 x

HTML 中的全局变量

使用 JavaScript 的情况下,全局作用域是 JavaScript 环境。

在 HTML 中,全局作用域是 window 对象。

通过 var 关键词定义的全局变量属于 window 对象:

var carName = "porsche";
// 此处的代码可使用 window.carName

通过 let 关键词定义的全局变量不属于 window 对象:

let carName = "porsche";
// 此处的代码不可使用 window.carName

通过 var 声明的变量会提升 (hoisting) 到顶端. 您可以在声明变量之前就使用它. let 不行.

// 在此处,您可以使用 carName
var carName;
// 您可以创建 const 对象:
const car = {type:"porsche", model:"911", color:"Black"};

// 您可以更改属性:
car.color = "White";

// 您可以添加属性:
car.owner = "Bill";
const car = {type:"porsche", model:"911", color:"Black"};
car = {type:"Volvo", model:"XC60", color:"White"};    // ERROR

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

var x = {firstName:"Bill", lastName:"Gates"};    // 对象

typeof 运算符对数组返回 "object",因为在 JavaScript 中数组属于对象。

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

空值与 undefined 不是一回事。

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

Null

在 JavaScript 中,null 是 "nothing"。它被看做不存在的事物。

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

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

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

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

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

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

Undefined 与 null 的值相等,但类型不相等:

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

typeof 运算符可返回以下两种类型之一:

  • function
  • object

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

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

对象的函数属性:

var person = {
  firstName: "Bill",
  lastName : "Gates",
  id       : 678,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

可以用[]访问对象的属性:

person["lastName"];

字符串中换行,反斜杠

document.getElementById("demo").innerHTML = "Hello \
Kitty!";

对长字符串换行的最安全做法(但是有点慢)是使用字符串加法:

document.getElementById("demo").innerHTML = "Hello" + 
"Kitty!";

Back-Tics 语法

模板字面量使用反引号 (``) 而不是引号 ("") 来定义字符串:

let text = `Hello World!`;

插值

模板字面量提供了一种将变量和表达式插入字符串的简单方法。

该方法称为字符串插值(string interpolation)。

语法

${...}

变量替换

模板字面量允许字符串中的变量,用真实值自动替换变量称为字符串插值

let firstName = "Bill";
let lastName = "Gates";

let text = `Welcome ${firstName}, ${lastName}!`;
let price = 10;
let VAT = 0.25;

let total = `Total: ${(price * (1 + VAT)).toFixed(2)}`;
let header = "Templates Literals";
let tags = ["template literals", "javascript", "es6"];

let html = `<h2>${header}</h2><ul>`;
for (const x of tags) {
  html += `<li>${x}</li>`;
}

html += `</ul>`;

NaN 属于 JavaScript 保留词,指示某个数不是合法数。

尝试用一个非数字字符串进行除法会得到 NaN(Not a Number):

var x = 100 / "Apple";  // x 将是 NaN(Not a Number)

不过,假如字符串包含数值,则结果将是数:

var x = 100 / "10";     // x 将是 10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值