JavaScript编程基础
JavaScript的基础语法
注释
//单行注释
/*
*多行注释
*/
语句
在JavaScript中,语句一般我们都会采用以分号结尾,每条语句独占一行的形势来书写代码。当然,如果一条语句后面不添加分号也不会报错麻蛋是在进行代码压缩的时候可能会带来一些问题。所以还是建议每条语句加上分号
可以使用c语言的风格用一对大括号将多条语句组合到一个代码块里面
命名的三种方法
匈牙利命名法
匈牙利命名法是微软公司下面以为匈牙利籍的程序员所发明的命名法则,其特点是标识符的名字以一个或者多个小写字母开头,表示了该变量的数据类型。
驼峰命名法
驼峰命名法实际上分为两种,一种是大驼峰,另外一种是小驼峰。
大驼峰又被称之为帕斯卡命名法,就是每一-个单词都是首字母大写例如: UserName
小驼峰和大驼峰的区别在于,小驼峰的第一个单词的首字母是小写,后面单词的首字母是大写例如: userName
蛇形命名法
这种命名法常见于Linux内核,C+ +标准库,Boost以及Ruby, Rust等语言蛇形命名法的特点在于单词与单词之间使用下划线进行分隔例如: user_ name, my_ first_ name
标识符
所谓标识符,就是指用来标识某个实体的一个符号。再说通俗一点,就是自己起一个名字,这个名字可以用来作为变量名,函数名,对象名等。在JavaScript中,虽然说标识符是自己取名字,但是也是需要遵守一定的规则, 其命名的规则大致可以分为2大类:硬性要求和软性要求
硬性要求
1.可以是由数字,字母,下划线和美元符号组成,不允许包含其他特殊符号
2.不能以数字开头
3.禁止使用JavaScript中的关键词和保留字来进行命名
4.严格区分大小写
关键字和保留字
ECMA-262描述了-组具有特定用途的关键字。这些关键字可用于表示控制语句的开始或结束,或者用于执行特定操作等。按照规则,关键字是语言本身所保留的,不能用作标识符。
ECMA-262还描述了另外一组不能用作标识符的保留字。尽管保留字在这门语言中还没有任何特定的用途。但它们有可能在将来被用作关键字。
JavaScript中的关键字与保留字如下:
abstract、await、 boolean、 break、 byte、 case、catch、 char、 class、 const, continue、debugger、default、 delete、 do、double、 else、 enum、export、 extends、 false、 final、finally、float、 for、 function、 goto、 if、 implements、 import、 in、instanceof、 int、interface、let、 long、 native、 new、 null、 package、 private、 protected、 public、 return、short、static、 super、 switch、 synchronized、 this、 throw、 throws、 transient、 true、 try、typeof、var、 volatile、 void、 while、 with、 yield
变量的声明和赋值
声明变量
在JavaScript中声明变量的方式有3种: var ,let ,const 。其中var现在已经不推荐使用了,因为会有变量提升等问题。
const和let的区别在于,const 所声明的变量如果是简单数据类型,那么是不能够再改变的。而let所声明的变量无论是简单数据类型还是复杂数据类型,在后面是可以改变的。
变量的赋值与初始化
我们可以利用=来给一个变量进行赋值,给变量第一次赋值的过程叫做变量的初始化
使用var声明变量
重复声明
重复声明不带有赋值操作,js引擎会自动忽略后面的变量声明
遗漏声明
如果试图读取一个没有声明的变量的值,js会报错;js允许遗漏声明,即直接对变量赋值儿无需事先声明,赋值操作会自动声明该变量
简单值和复杂值的区别
简单值
简单值是表示JS中可用的数据或信息的最底层形式或最简单形式。简单类型的值被称为简单值,是因为它们是不可细化的。
复杂值
在JavaScript中,对象就是一个复 杂值。因为对象可以向下拆分,拆分成多个简单值或者复杂值。复杂值在内存中的大小是未知的,因为复杂值可以包含任何值,而不是一个特定的已知值。所以复杂值的数据都是存储于堆区里面。
全局作用域和局部作用域介绍
全局作用域
这是js引擎一进来就处于的运行环境。在全局作用域的重所声明变量称之为全局变量。全局变量的特点在于变量在任何地方都能被访问
局部作用域
在js中,一堆大括号就可以产生一个局部作用域。局部作用域里面的变量称之为局部变量,只能在这个局部作用域里面才能访问到
JavaScript中的6种简单数据及其属性和方法
undefined类型
只有一个值,在使用变量但是没有为其赋值的时候,这个值就是undefined,没有声明的变量会报错,儿不是undefined
null类型
值只有一个,就是null,表示一个空的对象。
布尔类型
也被称之为boolean类型,就是真和假,值只有两个,一个是true,一个是false
下面9个值对应布尔类型里面的假值
“”双引号的空字符串
''单引号的空字符串
·· 空字符串模板
0 数字0
-0 js中-0和0为不同的值
NaN
false
null
undefined
数字类型
整数
数值转换
在JavaScript里面,有三个函数可以将非数值的数据转为数值,分别是Number,parseInt以及parseFloat这三个方法
NaN
英文全称Not a Number,就是非数值
实数
就是我们平常所常见的小数,或者称之为浮点数
字符串类型
这是程序里面使用最广泛的一种类型。在JavaScript里面,可以使用单引号,也可以使用双引号
字符串类型非常霸道,它和其他数据类型相加都会被转换为字符串类型
字符串模板
在ES6中新增了模板字面量是增强版的字符串,它用反引号标识
symbol类型
ES5中包含5种原始类型:字符串、数字、布尔值、null和undefined。 ES6引入了第6种原始类型:symbol
S5的对象属性名都是字符串,很容易造成属性名冲突。比如,使用了一个他人提供的对象,想为这个对象添加新的方法,新方法的名字就有可能与现有方法产生冲突。如果有一种机制,保证每个属性的名字都是独一无二的,这样就从根本_上防止了属性名冲突。这就是ES6引入symbol的原因。
运算符与运算符的优先级