美文网首页
JavaScript基础一:基本概念

JavaScript基础一:基本概念

作者: 北雁南飞_8854 | 来源:发表于2020-11-14 19:45 被阅读0次

ECMAScript的变量是松散类型(loosely typed)的,可以用来保存任何类型的数据。

var变量声明提升

var变量声明提升(var Declaration Hoisting),是指使用var声明的变量会被提升到函数作用域(function scope)的最顶端。
例如:

function foo() {
    console.log(age);
    var age = 26;
}
foo(); //undefined

在运行时会被视作:

function foo() {
    var age;
    console.log(age);
    age = 26;
}
foo(); // undefined

也可以重复声明同一个变量而不会报错:

function foo() {
    var age = 16;
    var age = 26;
    var age = 36;
    console.log(age);
}
foo(); // 36

var与let

let是块作用域的(block scoped),而var是函数作用域的(function scoped)。

if (true) {
    var name = 'Matt';
    console.log(name); // Matt
}
console.log(name); // Matt
if (true) {
    let age = 26;
    console.log(age); // 26
}
console.log(age); //ReferenceError: age is not defined

let声明不允许在同一个块作用域(block scope)内重复声明。

var name = 'Matt';
var name = 'Matt';
let age = 26;
let age = 26;  //SyntaxError: Identifier 'age' has already been declared

暂时性死亡区(Temporal Dead Zone)

let和var的另一个重要区别是,let声明不会声明提升。

var name = 'Matt';
var name = 'Matt';
let age = 26;
let age = 26;  //SyntaxError: Identifier 'age' has already been declared

原始类型(primitive type)的厨初始化只能使用原始类型字面量(primitive literal)来完成。如果使用new关键字的话,JavaScript将会创建一个Object类型。

let name1 = "Nicholas";
let name2 = new String("Matt");
name1.age = 27;
name2.age = 26;
console.log(name1.age); // undefined
console.log(name2.age); // 26
console.log(typeof name1); // string
console.log(typeof name2); // object

值的复制
primitive类型的值复制时,存储在variable object中的值会被复制进新的变量中。
当reference类型的值被复制时,复制的仅仅是指向存储在堆(heap)上的对象的指针(pointer)。

相关文章

  • JavaScript基础一:基本概念

    ECMAScript的变量是松散类型(loosely typed)的,可以用来保存任何类型的数据。 var变量声明...

  • 【融职培训】Web前端学习 第3章 JavaScript基础教程

    一、原始类型与引用类型的基本概念 在JavaScript基础课程中我们学习了JavaScript有六种数据类型: ...

  • JavaScript基础--基本概念

    什么是JavaScript? JavaScript简称JS,是前端开发的一门脚本语言(解释型语言)解释型语言:程序...

  • 老司机Studio 第四章

    Javascript初步 Javascript基本概念 Javascript 是 ECMAScript标准的一种实...

  • 【笔记】javaScript 基础入门(二)

    上一篇笔记里《javascript基础入门(一)》,我主要写了js基本概念(特点,组成,典型运用)、js的使用、调...

  • JSON格式

    JSON基本概念 JSON:JavaScript对象表示法(JavaScript object Notation)...

  • JS语法

    JavaScript基本概念、基础数据类型、运算符、流程控制语句。 一、CSS和JS在网页中的放置顺序是怎样的? ...

  • 关于Javascript语法

    * 这是关于JavaScript基本概念、基础数据类型、运算符、流程控制语句的一些小知识 * 1.CSS和JS在网...

  • JSON数据格式

    基本概念 JSON:JavaScript对象表示法(JavaScript Object Notation); JS...

  • 16.JS 语法

    学习内容:JavaScript基本概念,基础数据类型,运算符,流程控制语句 一、CSS和JS在网页中的放置顺序是怎...

网友评论

      本文标题:JavaScript基础一:基本概念

      本文链接:https://www.haomeiwen.com/subject/lvgbbktx.html