目录
JavaScript
JavaScript 是一个脚本语言。
它是一个轻量级,但功能强大的编程语言
JavaScript 字面量
在编程语言中,一般固定值称为字面量
数字(Number)字面量 可以是整数或者是小数,或者是科学计数(e)。
字符串(String)字面量 可以使用单引号或双引号。
表达式字面量 用于计算。
数组(Array)字面量 定义一个数组。
对象(Object)字面量 定义一个对象。
{firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
函数(Function)字面量 定义一个函数。
function myFunction(a, b) { return a * b;}
JavaScript 变量
在编程语言中,变量用于存储数据值。
JavaScript 使用关键字 var 来定义变量, 使用等号来为变量赋值:
var x, length
x = 5
length = 6
变量可以通过变量名访问。在指令式语言中,变量通常是可变的。字面量是一个恒定的值。
JavaScript 操作符
JavaScript使用 算术运算符 来计算值,使用赋值运算符给变量赋值。
JavaScript语言有多种类型的运算符:
类型 | 实例 | 描述 |
---|---|---|
赋值,算术和位运算符 | = + - * / | 在 JS 运算符中描述 |
条件,比较及逻辑运算符 | == != < > | 在 JS 比较运算符中描述 |
JavaScript 语句
在 HTML 中,JavaScript 语句用于向浏览器发出命令。语句是用分号分隔。
JavaScript 关键字
JavaScript 关键字用于标识要执行的操作。
和其他任何编程语言一样,JavaScript 保留了一些关键字为自己所用。
var 关键字告诉浏览器创建一个新的变量。
JavaScript 数据类型
JavaScript 有多种数据类型:数字,字符串,数组,对象等等。
JavaScript 函数
JavaScript 语句可以写在函数内,函数可以重复引用。
引用一个函数 = 调用函数(执行函数内的语句)。
function myFunction(a, b) {
return a * b; // 返回 a 乘以 b 的结果
}
TypeScript
typescript:javasscript的超集 ,添加了类型系统的 JavaScript,适用于任何规模的项目。
我们都知道JavaScript是一种弱类型的语言。而TypeScript增强了它的类型。
TypeScript 的[核心设计理念]:在完整保留 JavaScript 运行时行为的基础上,通过引入静态类型系统来提高代码的可维护性,减少可能出现的 bug。
TypeScript | JavaScript |
---|---|
JavaScript 的超集用于解决大型项目的代码复杂性 | 一种脚本语言,用于创建动态网页 |
可以在编译期间发现并纠正错误 是静态类型 | 作为一种解释型语言,只能在运行时发现错误,是动态类型 |
强类型,支持静态和动态类型 | 弱类型,没有静态类型选项 |
最终被编译成 JavaScript 代码,使浏览器可以理解 | 可以直接在浏览器中使用 |
支持模块、泛型和接口 | 不支持模块,泛型或接口 |
社区的支持仍在增长,而且还不是很大 | 大量的社区支持以及大量文档和解决问题的支持 |
动态类型是指在运行时才会进行类型检查
静态类型是指编译阶段就能确定每个变量的类型
1. 安装typescript
npm install -g typescript
编译ts文件(生成对应的js文件,)
tsc xxx.ts
2. 数据类型
原始数据类型:Boolean , String , Number , null , undefined ,Symbol
其他数据类型: Arrsy , Enum , Any , Never , Object , Void , Unknow , Tuple
- Symbol
es6中新增的一个类型,表示独一无二的值.Symbol 值通过Symbol()函数生成。这就是说,对象的属性名现在可以有两种类型,一种是原来就有的字符串,另一种就是新增的 Symbol 类型。凡是属性名属于 Symbol 类型,就都是独一无二的,可以保证不会与其他属性名产生冲突。
let a = Symbol()
let b = Symbol('b')
let d = Symbol()
a == b // false
- unknow ,any
在ts中any被成为全局超级类型,可以逃避类型检测
unknow也是另一种超级类型,但是unknow类型只能被赋值 unknow类型 和any类型
let value:unknown ;
let value2: any =value
let value3: boolean = value // Type 'unknown' is not assignable to type 'boolean
- tuple
一般数组是由同种类型的值组成,但是元组可以满足数组中含有不同类型的要求,
let data:[boolean , number , string] = [true ,123,'111']
3. 类型推论
如果没有明确的指定类型,那么 T