(function () { //布尔类型 var isDone = false; // isDone = 10 // isDone = 'true' // isDone = undefined // isDone = null console.log(isDone); //数字类型 var a1 = 10; //二进制 var a2 = 10; //十进制 var a3 = 10; //八进制 var a4 = 0xa; //十六进制 console.log(a1); console.log(a2); console.log(a3); console.log(a4); //字符串类型 var name = 'tom'; console.log(name); //字符串和数字之间能够进行拼接么? var str5 = '我有这么多钱'; var num = 10000000; console.log(str5 + num); //可以进行拼接 js的方式 var und = undefined; var nll = null; console.log(und, nll); //默认情况下 null和undefined是所有类型的子类型 //数组类型 //数组类型定义方式1 元素类型后面接上[] var arr1 = [1, 2, 3, 4, 5]; var arr2 = ['1', '2', '3']; console.log(arr1); console.log(arr2); //数组类型定义方式2 使用数组泛型 var arr3 = [1, 2, 3, 4]; var arr4 = ['1', '2', '3']; console.log(arr3); console.log(arr4); //注意: 数组定义后,里面的数据的类型必须和定义数组时候的类型完全一致 // var arr5: Array = ['小明',123,true,null,undefined] var arr6 = ['小明', 123, true]; console.log(arr6); // console.log(arr6[3].split('')) //元组类型 (Tuple) var t1 = ['小明', 123, '小红']; console.log(t1); // console.log(t1[0].split('')) // console.log(t1[1].split('')) //枚举 //枚举里面的每个数据值都可以叫做元素 每个元素都有自己的编号 从0开始 var Color; (function (Color) { Color[Color["Red"] = 1] = "Red"; Color[Color["Green"] = 3] = "Green"; Color[Color["Blue"] = 7] = "Blue"; })(Color || (Color = {})); var myColor = Color.Blue; var myColor1 = Color[3]; console.log(Color); console.log(myColor); console.log(myColor1); //any类型 //在编程阶段 可能我们还不知道这个变量最终为什么类型 这个时候 赋值一个any类型 var nnn = 100; // nnn = 'xiaohong' nnn = true; console.log(nnn); var xxx = [1, true, 'xiaoming']; console.log(xxx); //当一个数组种要存储多个数据类型 不确定的时候 可以使用any来定义数组 //这种时候 没有任何错误的提示信息 // console.log(xxx[0].split('')) //void 类型 //某种意义上来说 any类型的反面 表示没有任何类型 function showMsg() { console.log('hello word'); } console.log(showMsg()); //声明一个void变量没什么用 只能赋值 null undefined var aaa = undefined; //object类型 //定义一个object类型 参数是object类型 返回值也是object类型 function getObj(obj) { console.log(obj); return { name: 'xiaoming', age: 30 }; } console.log(getObj({ name: 'zs', age: 18 })); //联合类型 表示取值可以为多种类型 //需求1:定义一个函数得到一个数组或者字符串 // function toString(x: number | string): string{ // return x.toString() // } // console.log(toString('123')) //需求2: 定义一个函数得到一个数组或者字符串的长度 function toString(x) { // return x.toString().length // if(x.length){ // return x.length // } else { // return x.toString().length // } if (x.length) { return x.length; } else { return x.toString().length; } } console.log(toString(123)); //类型断言 告诉编译器 我知道我自己要什么类型 /* 方式1: <类型>值 方式2: 值 as 类型 */ // 类型推断 TS会在没有明确指定类型的时候推测出一个类型 // let c1 = 100 // c1 = 'xiaoming' var c1; c1 = 100; console.log(c1); c1 = 'xiaoming'; console.log(c1); })();