1. 程式人生 > 其它 >javascript和typescript

javascript和typescript

1、安裝node.js:

npm -v 檢視nmp版本

node -v 檢視node版本

tsc -v 檢視typescript版本

node test.js 執行js指令碼

2、typescript安裝:

/*
Webstorm 編寫執行 typescript 的方式:
npm config set registry https://registry.npm.taobao.org
npm config set disturl https://npm.taobao.org/dist
npm -g install typescript

tsc -v

npm install -g ts-node

node.js+npm+tsc+webstorm+webstorm外掛+ts_node

// 執行以下命令將 TypeScript 轉換為 JavaScript 程式碼:tsc app.ts
// 使用 node 命令來執行 app.js 檔案:node app.js
// 以同時編譯多個 ts 檔案:tsc file1.ts file2.ts file3.ts
* 
*/

3、特點

// 需要注意介面不能轉換為 JavaScript。 它只是 TypeScript 的一部分。
// TypeScript 不支援繼承多個類,但支援多重繼承
// 值型別(基本型別):字串(String)、數字(Number)、布林(Boolean)、對空(Null)、未定義(Undefined)、Symbol。
// 引用資料型別:物件(Object)、陣列(Array)、函式(Function)。

// js的物件鍵值對的寫法類似於:
// PHP 中的關聯陣列
// Python 中的字典
// C 語言中的雜湊表
// Java 中的雜湊對映
// Ruby 和 Perl 中的雜湊表

// 在 JavaScript 中,很多時候,你需要避免使用 new 關鍵字。
// ts:
// for…of 、forEach、every 和 some 迴圈
// for...of 語句建立一個迴圈來迭代可迭代的物件。在 ES6 中引入的 for...of 迴圈,以替代 for...in 和 forEach() ,並支援新的迭代協議。
// forEach、every 和 some 是 JavaScript 的迴圈語法
// 怎麼感覺不是for...of,而是let...of ??

let someArray = [1, "string", false];
 
for (let entry of someArray) {
    console.log(entry); // 1, "string", false
}

4、演算法錯誤記錄:

// HJ3 明明的隨機數
// 第一行輸入個數,餘下行輸入要去重的數字序列:ctrl+c結束連續輸入
// 3
// 2
// 2
// 1
let readline = require('readline');
let r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});
let line = -1;
let len = 0;
let arr = [];
let obj = {};

r1.on('line', function (input){
    input = parseInt(input);
    if (line == -1) {
        line = 1;
        len = input;
        arr = [];
        obj = {};
    } else {
        if (!obj[input]) {
            obj[input] = 1;
            arr.push(input);
        }
        if (len === 1) {
            console.log(arr.sort(function(a,b) {return a-b;}).join("\n"));
            line = -1;
        }
        len--;
    }
});