js和ts学习总结

JS和TS学习总结

JS

JavaScript是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。虽然它是作为开发Web页面的脚本语言而出名,但是它也被用到了很多非浏览器环境中,JavaScript 基于原型编程、多范式的动态脚本语言。

JavaScript是一种解释性脚本语言,基于对象不仅可以创建对象也能使用现有的对象,也具有简单,动态性以及跨平台性等特点,是前后端开发的基础。

JS概要

1.语法

标识符是变量、函数、属性的名字,也可以是函数的参数,标识符可以按照第一个字符只能是字母、下划线( _ )或美元符号( $ )之一;其他字符可以是字母、下划线、美元符号或数字,这样的规则组合起来的一个后或多个的字符。并且标识符最好是按照驼峰大小格式。

在js当中有一些关键字,保留字需要注意。

变量中在JS是非常特殊的,它不同于其他语言的变量,在JS中变量是松散型,就是它可以 是任何类型的变量比如:“String、Number、Boolean以及Object等”,这在其他的语言中是可能的,正因为这中特性所以我们在定义变量时最好是注明其类型。并且我们在定义变量的时候要注意使用var操作符,使用var操作符所定义的变量是局部变量在退出函数之后就会被销毁,不使用var定义的变量就是全局变量。

JS中的操作符

操作符在JS中也是不可缺少的部分,其中有一元操作符“++ --”,布尔操作符“&& || !”,并且在JS中除了以下值以外其他都表示为真:“false、null、undefined、‘’、0、NaN”。算术操作符“+ - * / %”,但是在算术操作符运算时要特别注意JS中的是可以不同类型相加的,比如说以下代码:

var num1 = 1;

var num2 = 11;

var message = "The sum of 1 and 11 is " + num1 + num2;这样它们输出的结果不会是12而是111,因为这里的JS将他们视为字符串拼接起来。

再者就是JS中的关系操作符,在JS当中关系操作符有“<、> 、<=、>=、 == 、=== 、!=、 !,这其中普通的大小比较和其他一样,只是相比于其他的语言还多了一个=,并且只能保证写做一样,只有=才能保证值和类型都一样。

在JS中比较重要的还有条件操作符“?:”,基本上和C里面if判断是相同的,这一操作符JS中一般的用法是语句1?语句2:语句3,这个语句代表着当语句1为true时执行语句2,若语句1为flase时,执行语句3。在JS还有一些赋值的操作符“=、 += 、-+ 、*= 、/= 、%=”这些操作符都是给变量赋值时使用。

JS中的语句

在JS中有很多常用的语句,我们这里就下列几种的语句,我们通常使用的语句就有下面几种“if、do-while、while for、for-in、for-of、break、continue、switch”,for-of、forEach这两种能简洁的遍历集合中的元素,for-in主要就是专注于下标,通过标记出数组中下标通过遍历下标来得到我们想要的数,而for-of就是专注于数组中的元素直接遍历元素。使用JS语法时要加入{}.

JS中的函数

函数对JS当中函数是十分重要的,我们可以通过函数来封装语句,然后任何地方、任何时候来将其调用执行,这就类似于C++的封装技术,在JS当中在定义函数的时候并不需要指定是否要有返回值,并且在JS中的函数是不会限制传递进来的参数,所以在调用函数的时候可以传多个参数甚至可以不进行传参。 这是因为JS中的参数在内部是用一个数组来表示的,函数接收到的一直是数组本身,所以就并不需要去关注数组中的参数。另外如果在JS当中定义了两个相同名字的函数的话,JS会只识别后定义的函数。

JS中的对象Object

在JS当中对象Object是使用得最多得类型,我们通常将数据和方法封装到对象当中,我们创建对象可以用new,但是我们可以直接在其中添加。虽然object构造函数或对象字面量来创建单个对象,但是这样就会导致使用同一个接口创建的对象很多就会产生大量的重复代码,所以我们就使用
function createPerson(name, age, job)
{

var o = new Object();

o.sayName = function(){

console.log(this.name);
};

return o;
}这样的方式来解决这和个问题。

JS中的数组Array

Array类型也是在JS当中常用的类型,JS当中的数组也是不同于其他语言的数组,在JS中的数组是可以保存任何类型的数据的并且在JS当中数组的大小是可以动态调整的。
在JS中常用的数组方法有:元素联合可以在数组中加上我们想要写的,“console.log(xxxx.join(‘,’));堆栈方法,是一种先进后出的方式,和其他语言的一样,push表示放入,pop表示出栈,

JS中的链式语法

在JS中链式语句非常流行,我们在实现时只需要让每个函数都返回会this以此来代表包蛤属该函数的对象,这样能够使得其他函数可以被立即调用。类似以下的写法

var xxx = {//定义对象

catapult: function() {

console.log( ‘yes’ );

return this;//返回对象自身
},

8.JS中的闭包

闭包是Closure,这是静态语言所不具有的一个新特性。简而言之闭包就是函数的局部变量集合,但是这些局部变量在函数返回后任然会继续存在,也就是在函数“堆栈”在函数返回之后并不释放内存,以下的为例:

function get(text) {

var text = 'Hello ’ + text;

return function() { console.log(text); }
}

var sayHello = get(‘word’);

sayHello();

以上代码执行出来的结果就是Hello word,因为放入参数word后正好可以满足函数内的后一句语句而将word加到hello后面

TypeScript总结

TypeScript和JavaScript

TypeScript 是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集,扩展了 JavaScript 的语法,typescript能够被编译成js。
TypeScript 可以处理已有的 JavaScript 代码,并只对其中的 TypeScript 代码进行编译。由于TS和JS一样的部分很多,只总结不一样的地方。

let 和 const

使用let或const申明变量,并加上类型说明,作用域为块级,用{}进行包含。

例如:

let name:string = ‘ts’;//即声明了一个string类型的变量name,并初始化为ts

let num = 1;//声明了一个num变量,没有加作用域ts就会自动用它的初始值来给他定义类型。

const pi: number = 3.14;//const的作用是设置为常量,值不能改变

数组解构

将数组的值单个或多个提取出来
例如:

let input = [a,b,c,d];

let [first,second]=input;

console.log(first);//输出a

console.log(second);//输出b

let [one,…others]=input;

console.log(…others);//输出b,c,d

let new =[0,…others,t];

console.log(new);//输出0,b,c,d,t

函数

函数声明告诉编译器函数的名称、返回类型和参数,函数定义提供了函数的实际主体。<

类class

TypeScript 是面向对象的 JavaScript。类描述了所创建的对象共同的属性和行为。TypeScript 支持面向对象的所有特性,比如 类、接口,封装等。与c++的类class类似。

例如:

class student{

public name:string;//可访问属性

private _age:number;//不可访问的私有属性

static address;//静态属性,可直接使用而不需要实例化

constructor(name: string, weather: string){
this.name=name;

this._age=age;

}//对类进行封装好以便后续调用

get name():number{
return this._age;}

set nmae()😕/和C++一样的提供接口,可以提供外界进行获取和修改
}

class son extends student{}//使用extends继承类并且可以实现继承是否继承public和其他的其他变量。

模块化

编写多个.ts文件,每个.ts文件都是一个模块,通过 export 来对外部模块暴露元素, import 来引入模块。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值