JS的基本语法、变量声明、数据类型和字面量
javascript是区分大小写的,所以变量abc和ABC是不同的变量。
在js中指令被称为语句statement,并用分号进行分割(;)。
javascript有三种声明方式。
1,var 声明一个变量(用var声明的是全局变量),可初始化一个值。
2,let 声明一个块作用域的局部变量,可初始化一个值。
3,const 声明一个不能被修改的常量(尝试更改const声明的变量将报错)。
(变量又叫做标识符)
用var 和 let声明的变量,如果没有赋初始值,则值为undefined
var
变量的作用域:
1, 在函数之外声明的变量,叫全局变量。它可被当前文档中任何其他地方的代码所访问。
2, 在函数内部声明的变量,叫局部变量。它只能在当前函数内部访问。
变量的提升:
JavaScript的另一个不同寻常的地方就是变量的提升,就是说在程序中可以先使用变量稍后再声明变量而不会抛出异常。JS的变量提升是被“提升”到了函数或者语句的最前面,相当于再代码最开头就声明过一样,但是其初始值是undefined,这点需要注意到。
由于存在变量提升这个特性,一个函数中使用var声明的变量尽可能地将其放在函数地最顶部,提升代码地清晰度。
在ES6中,let声明地变量不存在变量提升。
函数提升:
在JS中函数有两种创建方式: 函数声明和函数表达式。而函数的提升只是在函数声明这种创建方式下才有效。函数表达式不生效。
/* 函数声明 */
全局变量:
实际上,在函数体外我们用var声明的变量都是全局变量,全局变量是全局对象window的属性。可以自行打印下window下的所有属性。
数据类型:
6种基本数据类型:Boolean 布尔值、 Null 空值、 Undefined 未定义(变量未定义时的属性)、 Number 数字(包括整数和浮点数)、String 字符串、 Symbol 符号(一种实例是唯一且不可改变的数据类型 ES6)
1种引用数据类型: Object 对象
对象(Objects)和函数(functions)是这门语言的另外的两个基本元素,我们可以把对象当成一个可以命名的容器。首先对象是一个承载数据的容器,其次它还有属于自己的名字(变量名)。我们可以将函数当作一段程序执行的步骤(一段代码在函数中自上向下执行,这也是关乎到了JS的执行机制)。
JavaScript是一种动态类型语言,这也就表示着声明变量时可以声明任意数据类型,并且后续可以通过代码直接更改变量的数据类型。
var answer = 42;
// 直接修改变量answer的数据类型为 字符串
answer = "hello world";
在JavaScript中,大多数事物都是对象,从作为核心功能的字符串和数组,到建立在JavaScript之上的浏览器API。你甚至可以自己创建对象,将相关的函数和变量高效的封装打包成便捷的数据容器。
对象是一个包含相关数据和方法的集合(键值对,属性名和属性值,属性值可以是任意数据类型,也可以是另外一个对象,还可以是一个函数对象)。
var
从零开始面向对象的程序设计:
对象可以包含相关的数据和代码,这些数据和代码用于表示你所建造的模型是什么样子,以及拥有什么样的功能和行为。
对象包(或者叫命名空间namespace)存储(官方用语:封装)着对象的数据(常常还包括函数),使数据组织和访问变得更容易了;
对象也常用作数据存储体(data stores),用于在网络上运输数据,十分便捷。
定义一个对象模板:
在一些面向对象的语言中,我们用类(class)的概念去描述一个对象(而JavaScript使用了一个完全不同的术语),类并不完全是一个对象,它更像是一个定义对象特质的模板。