javascript是前端开发语言,由浏览器解释执行

JavaScript *函数*是一种 JavaScript 代码块,它可以在调用时被执行
JavaScript 函数作用域:
在 JavaScript 中有两种作用域类型:
1.局部作用域
2.全局作用域

每个函数创建一个新的作用域。作用域决定了这些变量的可访问性(可见性)。函数内部定义的变量从函数外部是不可访问的(不可见的)。在 JavaScript 函数中声明的变量,会成为函数的局部变量。
局部变量的作用域是局部的:只能在函数内部访问它们。

函数之外声明的变量,会成为全局变量。
全局变量的作用域是全局的:网页的所有脚本和函数都能够访问它。

javascript严格模式:
"use strict"; 的作用是指示 JavaScript 代码应该以“严格模式”执行。
通过在脚本或函数的开头添加 "use strict"; 来声明严格模式。

变量声明的方式:let const var 
var 重新声明方式,在使用的过程中需要注意:

var num = 2;
{
  var num = 3;
}
执行后num的值变成3,变量被重新定义覆盖了
通过 const 定义的变量与 let 变量类似,但不能重新赋值:

window对象:
所有浏览器都支持 window 对象。它代表浏览器的窗口。所有全局 JavaScript 对象,函数和变量自动成为 window 对象的成员。全局变量是 window 对象的属性。全局函数是 window 对象的方法。
window.innerWidth - 浏览器窗口的内宽度
window.innerHeight - 浏览器窗口的内高度

screen.height 属性返回以像素计的访问者屏幕的高度。
screen.availWidth 属性返回访问者屏幕的宽度,以像素计,减去诸如窗口工具条之类的界面特征。

可用高度和宽度:
screen.availHeight 属性返回访问者屏幕的高度,以像素计
screen.availWidth  属性返回访问者屏幕的宽度

Window Location:
window.location.href 返回当前页面的URL
window.location.hostname 返回 web 主机的域名
window.location.pathname 返回当前页面的路径或文件名
window.location.protocol 返回使用的 web 协议(http: 或 https:)

Window History:
history.back() - 等同于在浏览器点击后退按钮,页面转到上次访问的页面
history.forward() - 等同于在浏览器中点击前进按钮
var person = {
    firstName:"Bill",
    lastName: "Gates",
    fullName: function () {
        return this.firstName + " " + this.lastName;
    }
}
person.fullName();

使用call方法可以执行另一个对象的方法:

var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName:"Bill",
    lastName: "Gates",
}
var person2 = {
    firstName:"Steve",
    lastName: "Jobs",
}
person.fullName.call(person1);
var person = {
    fullName: function() {
        return this.firstName + " " + this.lastName;
    }
}
var person1 = {
    firstName: "Bill",
    lastName: "Gates",
}
person.fullName.apply(person1);

Call 方法和Apply方法的区别:

call方法分别接受参数 apply 方法接受数组类型的参数

var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"John",
  lastName: "Doe"
}
person.fullName.apply(person1, ["Oslo", "Norway"]);
var person = {
  fullName: function(city, country) {
    return this.firstName + " " + this.lastName + "," + city + "," + country;
  }
}
var person1 = {
  firstName:"John",
  lastName: "Doe"
}
person.fullName.call(person1, "Oslo", "Norway");