JavaScript学习笔记(一)

JavaScript学习

初识JavaScript

JavaScript相比于其它编程语言,学习 JS 有以下几个优势

  • JavaScript 是最流行的客户端脚本语言,有着简单易学的特点。学有所成后,您可以使用一些基于 JavaScript 的框架(例如 JQuery、Node.js)来开发前端或后端应用程序;

  • JavaScript 可以在 Web 浏览器中运行,因此学习 JavaScript,您不需要配置任何特殊的运行环境;

  • JavaScript 的应用非常广泛,例如移动应用开发、桌面应用开发、Web 游戏开发等都会用到 JavaScript,为 JavaScript 程序员提供了更多的就业机会;

  • JavaScript 有着大量的优质框架和库,借助这些框架和库可以大大减少您的开发时间。

JavaScript是什么?

JavaScript的组成

JavaScript有什么特点:

JavaScript 具有以下特点:

1 .解释型脚本语言

JavaScript 是一种解释型脚本语言,与 C、C++ 等语言需要先编译再运行不同,使用 JavaScript 编写的代码不需要编译,可以直接运行。

  1. 面向对象

JavaScript 是一种面向对象语言,使用 JavaScript 不仅可以创建对象,也能操作使用已有的对象。

  1. 弱类型

JavaScript 是一种弱类型的编程语言,对使用的数据类型没有严格的要求,例如您可以将一个变量初始化为任意类型,也可以随时改变这个变量的类型。

  1. 动态性

JavaScript 是一种采用事件驱动的脚本语言,它不需要借助 Web 服务器就可以对用户的输入做出响应,例如我们在访问一个网页时,通过鼠标在网页中进行点击或滚动窗口时,通过 JavaScript 可以直接对这些事件做出响应。

  1. 跨平台

JavaScript 不依赖操作系统,在浏览器中就可以运行。因此一个 JavaScript 脚本在编写完成后可以在任意系统上运行,只需要系统上的浏览器支持 JavaScript 即可。

一,变量的定义和使用

1.var

这是使用var声明一个变量。

var message = '三叶';
message = 666; //这样改变原有变量的操作是不推荐的,虽然这样的操作是被允许的。

注意:如果在这里使用的严格模式,这样的操作是不被允许的。

var的作用域(函数作用域)

在函数作用域中:

function test(){
 	var number = 100;  //局部变量 
}
test();
console.log(number); // 输出undefined

当运行这段代码时会出现如下错误

这是因为var在函数内被生命,使得它成为一个局部变量,在执行完函数后变量就会被销毁

在块级作用域中:

if(true){
 	var number = 100;  
}
console.log(number); //输出100

在去掉var声明后,变量为全局变量,可以成功输出对应的值

function test(){
 	number = 100;   //全局变量
}
test();
console.log(number); // 100

但是不推荐使用这种方式,因为这种在函数内部声明的变量,不容易被管理。

var的变量提升

function test(){
    console.log(number);
    var number = 100;
}
test();

在运行上述代码时,你可能会觉得会报错,但事实却相反,这是由于JavaScript的变量提升的操作。实际上代码应该是:

function test(){
    var number; //undefined
    console.log(number);
    var number = 100;
}
test();

2.let

使用let声明一个变量

let number = '100';
console.log(number);

let作用域(块级作用域)

相较于var函数式的作用域的作用域,let为块级作用域。

if(true){
    let number = 100;
}
console.log(number); // undefined

这也就说明了let的作用域为块级作用域。

let不能被重复声明

较于var而言,let变量不可以被重复声明。

let number;
let number;

如果你这样做了,你将会的到以下错误:

基于JavaScript的引擎,它会记录每一个变量的标识符和所在的作用域。因此,我们可以这么操作。

var number = 100;
console.log(number); // 100
function test(){
    var number = 10;
    console.log(number); // 10
}
test();
console.log(number) // 100
let number = 100;
console.log(number); // 100
if(true){
    let number = 10;
    console.log(number); // 10
}
console.log(number) // 100

对于var和let而言,即使重复声明同一个变量,但是因为他们并不是不同类型的变量,他们只是声明变量在所声明的变量中怎样存在。

var name;
let name;

let age;
var age;

暂时性死区

在JavaScript中,JavaScript会将代码中的let声明的变量给找到,但是如果在声明变量之前使用该变量,则会出现报错。

console.log(name);
let name;

console.log(age);
var age;

使用var则不会报错,因为var有变量提升的特性,而let没有。

全局声明

在全局作用域中使用var声明的全局变量是在window中的,而let在全局作用域中声明的变量虽然也是全局变量,但并没有存在于window对象中,而是伴随着整个页面的生命周期的。

var name = "杰克";
let age = 20;
console.log(window.name) // 杰克
console.log(window.age); // undefined

for循环中的let声明

使用var在循环中:

for(var i=0;i<5;i++){
    setTimeout(()=>{
        console.log(i);
    },1000)
}
for(let i=0;i<5;i++){
    setTimeout(()=>{
        console.log(i);
    },1000)
}

3.const

当我们使用const对变量进行声明,那么这个变量将会是不可修改的。

 const number = 10;
 number = 10;

如果你这样做了,你就会出现以下错误。

使用const变量声明的变量是不可以修改的,否则将无法运行,在编码的时候我们可以对一些不确定是否需要修改的变量使用const声明,这样可以有利于性能的提升。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值