美文网首页饥人谷技术博客
Javascript语法和类型

Javascript语法和类型

作者: 奔跑的Pi | 来源:发表于2015-11-22 15:50 被阅读61次

前端7班_leec

javascript-type-relationships
Javascript语法借鉴于 Java,Awk,Perl,Python,并且是大小写敏感的,使用Unicode字符集编码。在Javascript中,指令叫做语句,语句用分号;隔开,语句可以不加分号(不推荐)。

注释

注释的规则跟C++和其他语言类似,单行注释用//,多行注释通过/*注释内容*/

注释

声明

** var **
声明一个变量,在声明变量的同时可以赋值(可选)
** let **
声明一个块级作用域局部变量,可以赋初始值(可选)
** const **
声明一个只读的命名常量

变量

变量作为引用值的一个标识符(符号),标识符遵循以下规则:

以字母、下划线或者$符号开头,可以使用Unicode字符集;标识符大小写敏感,即foo、Foo、fOo是不同的标识符

声明变量

你可以通过以下方式声明变量:

  • 使用关键字var, 例如:var x = 42;这种方式用来声明全局变量和局部变量;
  • 简单地直接赋值,如:x = 42; 这种方式声明了一个全局变量(不推荐使用);
  • 使用关键字let,如:let y = 13,被用来声明一个块级作用域局部变量;

使用var或者let进行变量声明时没有赋初始值,变量将会得到undefined值,获取未定义变量的值将报错(thrown ReferenceError
exception),如:

var a; console.log("The value of a is " + a); // logs "The value of a is undefined" console.log("The value of b is " + b); // throws ReferenceError exception

在数值计算中,undefined值参与运算将被转为NaN:

var a; a + 2; // Evaluates to NaN

在数值计算中,null值参与运算将被转为0:

var a = null; a + 2; // Evaluates to 2

变量作用域

在函数作用域外面定义变量,将得到全局变量,在函数内定义变量将得到局部变量。在ES6以前Javascript没有块级作用域,使用let声明变量将得到块级作用域局部变量;

if (true) { let y = 5; } console.log(y); // ReferenceError: y is not defined

变量提升####

变量提升:引用其后的变量声明不报错,声明的变量被提升到函数开头或者作用域起始位置,被提升的变量会返回undefined值:


variable hoisting

因为变量提升,所有var声明语句应该尽可能放在函数定义的顶部

全局变量

事实上,全局变量是全局对象的属性,在浏览器中,全局对象是window,所以你能通过window.variable调用。

常量

使用关键字const定义常量,定义常量必须初始化,其作用域跟let一样,不能跟函数或者变量重名:

declare a constant with the same name as a function or variable

数据结构和类型

数据类型

最新的ECMAScript标准定义了7种数据类型:

  • 6种基本数据类型:
    • Boolean. true和false;
    • null.
    • undefined.
    • Number.
    • String.
    • Symbol.(ES6新类型)
  • Object对象

数据类型比较

Javascript是动态类型语言,声明变量时不用指定类型。
在数值计算中,+运算符的问题在于它可能有两种含义。如果把它用在数字上,它意味着把两个数字相加,但是如果把它用在字符串上,它意味着把两个字符串连接或者拼合在一起。Javascript处理字符串连接的优先级高于数字求和。 Javascript从左至右遍历+运算符,并分别根据它们的含义决定是相加还是连接。

x = "The answer is " + 42 // "The answer is 42" y = 42 + " is the answer" // "42 is the answer" "37" - 7 // 30 "37" + 7 // "377"

字面量

Array 字面量###

var coffees = ["French Roast", "Colombian", "Kona"];

额外的逗号

Array字面量中最后的逗号会被忽略,其他空位上的分号会被解析成undefined,最好显式声明undefined:


Extra commas in array literals

本文翻译整理自:
MDN **转载请注明出处 **

相关文章

  • JS基础

    JavaScript概述 、 JavaScript基础语法 、 变量和常量 、 数据类型 数据类型转换 、 运算符...

  • Javascript语法和类型

    前端7班_leec 注释 注释的规则跟C++和其他语言类似,单行注释用//,多行注释通过/*注释内容*/: 声明 ...

  • JS基本_2018-07-09

    javascript的组成 javascript的语法 javascript的数据类型: 查看数据类型 javas...

  • JS 语法和数据类型

    讨论 JavaScript 的基本语法,变量声明,数据类型 和 字面量。 1.基础 JavaScript 脚本的源...

  • 3. JavaScript基础入门

    主要内容包括JavaScript的语法、变量、数据类型 3.1 JavaScript的语法 3.1.1. 代码执行...

  • 小红书阅读笔记~第三章

    JavaScript基本概念有什么:语法、数据类型、流程控制语句、理解函数。 JavaScript语法 ECMAS...

  • Flow对象类型(Object Types)

    对象类型(Object Types) 对象类型语法 对象类型尝试尽可能多地匹配JavaScript中的对象的语法。...

  • typescript介绍

    TypeScript 是 JavaScript 的强类型版本。然后在编译期去掉类型和特有语法,生成纯粹的 Java...

  • JavaScript基本语法01

    JavaScript基本语法01 JavaScript 是一门高端的、动态的、弱类型的编程语言,适合面向对象和函数...

  • 数据类型

    1.JavaScript基础 1.JavaScript的语法 1.1 变量 2.数据类型的分类 2.1 原始类型:...

网友评论

    本文标题:Javascript语法和类型

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