js&&ts总结报告

JavaScript 简介
JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,是脚本语言,插入 HTML 页面后,可由所有的现代浏览器执行
也可下载安装node.js后在vscode中运行

语法:
1.区分大小写
2.注意变量,函数等命名规范
3.每行代码以分号结束

操作符:一些符号-----用来计算
算数运算符: + - * / %
算数运算表达式:由算数运算符连接起来的表达式
一元运算符: 这个操作符只需要一个操作数就可以运算的符号 ++ –
二元运算符: 这个操作符需要两个操作数就可以运算,
三元运算符: 条件表达式?表达式1:表达式2
复合运算符: += -= *= /= %=
复合运算表达式:由复合运算符连接起来的表达式

var num=10;
num+=10;------>就是:num=num+10;
console.log(num);20
赋值运算符: =
关系运算符:

< >= <=
==不严格的
===严格的
!=不严格的不等
!==严格的不等
关系运算表达式:
由关系运算符连接起来的表达式

关系运算表达式的结果是布尔类型

逻辑运算符:
&&—逻辑与–并且
||—逻辑或—或者
!—逻辑非—取反–取非
逻辑运算表达式:
由逻辑运算符连接起来的表达式
表达式1&&表达式2
如果有一个为false,整个的结果就是false
表达式1||表达式2
如果有一个为true,整个的结果为true
!表达式1
表达式1的结果是true,整个结果为false
表达式1的结果是false,整个结果为true

位运算符
位运算 NOT ~
位运算 AND &
位运算 OR |
位运算 XOR ^ (不同为1,相同则为0)
左移运算 <<
右移运算 >>

JS变量
量名的注意问题—变量名的命名:
1.要遵循驼峰命名法(第一个单词的首字母是小写的,后面的所有的单词的首字母都是大写的)
2.变量名要有意义
3.变量名要规范
4.不能使用关键字(系统自带的一些单词,不能使用)

声明变量并初始化—变量的初始化----声明变量赋值
var num=10;
声明了一个num的变量存储了一个数字10;
输出这个变量的值
console.log(num);//把内容输出到控制台中

js中存储数据使用变量的方式(名字,值—>数据)
js中声明变量都用var---->存储数据,数据应该有对应的数据类型
js中的字符串类型的值都用双引号或者单引号
变量的作用是存储数据的或者是操作数据
变量声明(有var 有变量名字,没有值)
变量初始化(有var 有变量名字,有值)

注释的方式:
1.单行注释 // 一般用在一行代码的上面
2.多行注释 /**/ 一般是用在函数或者是一段代码的上面

值类型(基本类型):
字符串(String)
数字-整数和小数(Number)
布尔(Boolean)
对空(Null)
未定义(Undefined)
Symbol

引用数据类型:
对象(Object)
数组(Array)
函数(Function)

var num=10;//十进制
var num2=012;//八进制以0开头
var num3=0x123;//十六进制0x开头

Js中的函数:

1.系统函数
ParseInt();转换为整数 45.9a转换为45;a6转换返回为NaN(Not a Number)
isNaN(判断是不是数字)
typeof(var);判断是什么数据类型
eval(“5+2”);计算表达式值

2.自定义函数
Function 函数名(){javaScript代码}
Function 函数名(参数1,参数2){javaScript代码 return 返回值(可选)}

Js中函数的调用:
事件名=“函数名(传递的参数值)“;
函数名(传递的参数值);
匿名函数:
匿名函数的声明:
Var 变量名=function(参数){ 函数体 return 返回值;} ;
调用
变量名(参数)

语句
for-in 精准的迭代语句,可以用来枚举对象的属性
for(var propName in window){
document.write(propName);
}

switch语句
switch (true){ //输出 Between 10 and 20,如果是false就输出 Less than 0
case num<0:
alert(“Less than 0”);
break;
case num>=0&&num<=1:
alert(“Between 0 and 1”);
break;
case num>10&&num<=20:
alert(“Between 10 and 20”);
break;
default:
alert(“More than 20”);
}
TypeScript简介
JavaScript是一种弱类型的语言。而TypeScript增强了它的类型。
TypeScript 的[核心设计理念]:在完整保留 JavaScript 运行时行为的基础上,通过引入静态类型系统来提高代码的可维护性,减少可能出现的 bug,最重要的一点,在编程过程中,JavaScript不会报错,而TypeScript会报错,能够指出编写过程中的错误,更容易发现和修改错误,所有泛用性比JavaScript要好太多。
TS配置
安装好NodeJS,以管理员身份运行终端,使用npm -g install ts-node typescript命令进行全局安装,在vscode中新建一个.ts后缀文件检验能否运行

数据类型
Boolean , String , Number , null , undefined ,Symbol,Arrsy , Enum , Any , Never , Object , Void , Unknow , Tuple
unknow ,any

在ts中any被成为全局超级类型,可以逃避类型检测
unknow也是另一种超级类型,但是unknow类型只能被赋值 unknow类型 和any类型
tuple
一般数组是由同种类型的值组成,但是元组可以满足数组中含有不同类型的要求
class类:定义了一件事物的抽象特点,包含它的属性和方法
对象(Object):类的实例,通过 new 生成
面向对象(OOP)的三大特性:封装、继承、多态
存取器(getter & setter):用以改变属性的读取和赋值行为
修饰符(Modifiers):修饰符是一些关键字,用于限定成员或类型的性质。比如 public 表示公有属性或方法
抽象类(Abstract Class):抽象类是供其他类继承的基类,抽象类不允许被实例化。抽象类中的抽象方法必须在子类中被实现
接口(Interfaces):不同类之间公有的属性或方法,可以抽象成一个接口。接口可以被类实现(implements)。一个类只能继承自另一个类,但是可以实现多个接口
implements
实现, 一个新的类,从父类或者接口实现所有的属性和方法,同时可以重写属性和方法,包含一些新的功能
extends
继承,一个新的接口或者类,从父类或者接口继承所有的属性和方法,不可以重写属性,但可以重写方法
泛型(Generics)是指在定义函数、接口或类的时候,不预先指定具体的类型,而在使用的时候再指定类型的一种特性。

function createArray(length: number, value: any): Array {
let result = [];
for (let i = 0; i < length; i++) {
result[i] = value;
}
return result;
}
createArray(3, ‘x’); // [‘x’, ‘x’, ‘x’]
无法精准定位返回的数据类型,any可以是任意类型
function createArray(length: number, value: T): Array {
let result: T[] = [];
for (let i = 0; i < length; i++) {
result[i] = value;
}
return result;
}
createArray(3, ‘x’); // [‘x’, ‘x’, ‘x’]
这样可以精准推算出返回的数据类型
其中 T 代表 Type,在定义泛型时通常用作第一个类型变量名称。但实际上 T 可以用任何有效名称代替。除了 T 之外,以下是常见泛型变量代表的意思:
K(Key):表示对象中的键类型;
V(Value):表示对象中的值类型;
E(Element):表示元素类型。
泛型接口
当然也可以使用含有泛型的接口来定义函数的形状:
interface CreateArrayFunc {
(length: number, value: T): Array;
}

let createArray: CreateArrayFunc;
createArray = function(length: number, value: T): Array {
let result: T[] = [];
for (let i = 0; i < length; i++) {
result[i] = value;
}
return result;
}

createArray(3, ‘x’); // [‘x’, ‘x’, ‘x’]
泛型类
class GenericNumber {
zeroValue: T;
add: (x: T, y: T) => T;
}

let myGenericNumber = new GenericNumber();
myGenericNumber.zeroValue = 0;
myGenericNumber.add = function (x, y) {
return x + y;
};
泛型约束
在函数内部使用泛型变量的时候,由于事先不知道它是哪种类型,所以不能随意的操作它的属性或方法:所有可以对泛型进行约束,必须含有特定的属性
function loggingIdentity(arg: T): T {
console.log(arg.length);
console.log(arg.personName);
return arg
}

loggingIdentity({personName:‘hahah’ ,length:4}) // 4 , ‘hahah’
在泛型约束中使用类型参数
可以声明受另一个类型参数约束的类型参数。
function getProperty<T, K extends keyof T>(obj: T, key: K) {
return obj[key];
}

let x = { a: 1, b: 2, c: 3, d: 4 };

getProperty(x, “a”); 1
getProperty(x, “m”); //Error Argument of type ‘“m”’ is not assignable to parameter of type ‘“a” | “b” | “c” | “d”’.

装饰器
装饰器是一种特殊类型的声明,它能够被附加到类声明,方法, 访问符,属性或参数上。 装饰器使用 @expression这种形式,expression求值后必须为一个函数,它会在运行时被调用,被装饰的声明信息做为参数传入

定义装饰器

function helloWord(target: any) {
console.log(‘hello Word!’);
}
@helloWord
class HelloWordClass {
}
装饰器的类型有:类装饰器、访问器装饰器、属性装饰器、方法装饰器、参数装饰器。
访问器装饰器
访问器装饰器应用于访问器的属性描述符,可用于观察,修改或替换访问者的定义。 访问器装饰器不能在声明文件中使用,也不能在任何其他环境上下文中使用
TypeScript不允许为单个成员装饰get和set访问器。相反,该成员的所有装饰器必须应用于按文档顺序指定的第一个访问器。这是因为装饰器适用于属性描述符,它结合了get和set访问器,而不是单独的每个声明

条件语句
if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if…else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if…else if…else 语句- 使用该语句来选择多个代码块之一来执行
switch 语句 - 使用该语句来选择多个代码块之一来执行

for 循环
TypeScript for 循环用于多次执行一个语句序列,简化管理循环变量的代码。
for ( i=0; i《10; i++ ){
//语句
}
for…in 语句用于一组值的集合或列表进行迭代输出。
for (j in n) {
//语句
}
while 循环
while 语句在给定条件为 true 时,重复执行语句或语句组。循环主体执行之前会先测试条件。
语法格式如下所示:
while(condition)
{
statement(s);
}

函数
TypeScript函数可以创建有名字的函数和匿名函数。 你可以随意选择适合应用程序的方式,不论是定义一系列API函数还是只使用一次的函数。
列如:
function add(x, y) {
return x + y;
}
函数类型
定义类型
function add(x: number, y: number): number {
return x + y;
}

let myAdd = function(x: number, y: number): number { return x + y; };

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值