typescript學習筆記(一)--字符串、函數等新特性

一. 字符串新特性

  1. 多行字符串
    我們在js中要連接多個字符串需要使用+,而在ts中可以直接使用``即可,可自動轉換成換行符
//ts
var username = 'dalei';
var sex = '女';
var age = `name
sex`;

//編譯後的js
"use strict";
var username = 'dalei';
var sex = '女';
var age = "name\nsex";
  1. 字符串模板
    在js中我們如果想拼接html,需要用到各種換行符,反斜槓,ts的``可以自行轉換,${}可識別變量
//ts
var sex = '女';
var age = 18;
var getName = function () {
    return  'dalei';
}
console.log(`<div>
<span>${getName}</span>
<span>${age}</span>
</div>`)

//編譯後的js
"use strict";
var sex = '女';
var age = 18;
var getName = function () {
    return 'dalei';
};
console.log("<div>\n<span>" + getName + "</span>\n<span>" + age + "</span>\n</div>");
  1. 自動拆分字符串
function test(template, name, age){
  console.log(template);
  console.log(name);
  console.log(age);
}
var name = 'forrest';
var getAge = function (){
  return 18;
}
test`hello,my name is ${name},i'm ${getAge()} years old.`

控制檯輸出
在這裏插入圖片描述

二. 函數特性

rest操作符這裏我就不說了,這裏我就簡單說一下generator函數

// *即表示generator函數,它依賴es6的yield新關鍵字,每次next()則執行至下一個yield
//eg1:
 function* dosomthing {
	console.log('第一步');
	yield;
	console.log('第二步');
}
dosomthing.next();
//此時控制檯輸出的是

在這裏插入圖片描述

dosomthing.next();
//此時控制檯輸出的是

在這裏插入圖片描述

//eg2:實現當股票價格大於最低價格時,再買入
function* getStockPrice (stock) {
	while (true) {
		yield Math.random()*100;
	}
}
var priceGene = getStockPrice ('hai');
let price:Number = 100;
let limitPrice = 20;
console.log(price)
while (price > limitPrice ) {
	price = priceGene.next().value;
	console.log(price)
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章