概述
1,在 JavaScript 中函数也是对象,对象则有方法,apply 和 call 就是函数对象的方法。这两个方法异常强大,他们允许切换函数执行的上下文环境(context),即 this 绑定的对象。
var person1 = {
fullName: function() {
return this.firstName + " " + this.lastName;
}
var person2 = {
firstName:"John",
lastName: "Doe",
}
person1.fullName.call(person2); // 返回 "John Doe"
2,使用 var 关键字声明的变量不具备块级作用域的特性,它在 {} 外依然能被访问到。
{
var x = 2;
}
// 这里可以使用 x 变量
在 ES6 之前,是没有块级作用域的概念的。
ES6 可以使用 let 关键字来实现块级作用域。
let 声明的变量只在 let 命令所在的代码块 {} 内有效,在 {} 之外不能访问。
{
let x = 2;
}
// 这里不能使用 x 变量
使用 var 关键字重新声明变量可能会带来问题。
在块中重新声明变量也会重新声明块外的变量:
var x = 10; // 这里输出 x 为 10
{ var x = 2; // 这里输出 x 为 2
}
// 这里输出 x 为 2
let 关键字就可以解决这个问题,因为它只在 let 命令所在的代码块 {} 内有效。
var x = 10; // 这里输出 x 为 10
{
let x = 2; // 这里输出 x 为 2
}
// 这里输出 x 为 10
let i = 5;
for (let i = 0; i < 10; i++)
{ // 一些代码... }
// 这里输出 i 为 5
在函数体内使用 var 和 let 关键字声明的变量有点类似。它们的作用域都是 局部的:
在函数体外或代码块外使用 var 和 let 关键字声明的变量也有点类似。它们的作用域都是 全局的:
JavaScript 中,var 关键字定义的变量可以在使用后声明,也就是变量可以先使用再声明(JavaScript 变量提升)。
let 关键字定义的变量则不可以在使用后声明,也就是变量需要先声明再使用。
3,const 的本质: const 定义的变量并非常量,并非不可变,它定义了一个常量引用一个值(引用地址??)。使用 const 定义的对象或者数组,其实是可变的。下面的代码并不会报错:
实例
// 创建常量对象
const car = {type:"Fiat", model:"500", color:"white"};
// 修改属性:
car.color = "red";
// 添加属性
car.owner = "Johnson";
const 关键字在不同作用域,或不同块级作用域中是可以重新声明赋值的:
const x = 2;
// 合法
{
const x = 3;
// 合法
}
{
const x = 4;
// 合法
}
const 关键字定义的变量则不可以在使用后声明,也就是变量需要先声明再使用。
最后
以上就是腼腆镜子为你收集整理的javascript学习笔记2-js教程基础的全部内容,希望文章能够帮你解决javascript学习笔记2-js教程基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复