1_基本数据类型.js 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. (function () {
  2. //布尔类型
  3. var isDone = false;
  4. // isDone = 10
  5. // isDone = 'true'
  6. // isDone = undefined
  7. // isDone = null
  8. console.log(isDone);
  9. //数字类型
  10. var a1 = 10; //二进制
  11. var a2 = 10; //十进制
  12. var a3 = 10; //八进制
  13. var a4 = 0xa; //十六进制
  14. console.log(a1);
  15. console.log(a2);
  16. console.log(a3);
  17. console.log(a4);
  18. //字符串类型
  19. var name = 'tom';
  20. console.log(name);
  21. //字符串和数字之间能够进行拼接么?
  22. var str5 = '我有这么多钱';
  23. var num = 10000000;
  24. console.log(str5 + num);
  25. //可以进行拼接 js的方式
  26. var und = undefined;
  27. var nll = null;
  28. console.log(und, nll);
  29. //默认情况下 null和undefined是所有类型的子类型
  30. //数组类型
  31. //数组类型定义方式1 元素类型后面接上[]
  32. var arr1 = [1, 2, 3, 4, 5];
  33. var arr2 = ['1', '2', '3'];
  34. console.log(arr1);
  35. console.log(arr2);
  36. //数组类型定义方式2 使用数组泛型
  37. var arr3 = [1, 2, 3, 4];
  38. var arr4 = ['1', '2', '3'];
  39. console.log(arr3);
  40. console.log(arr4);
  41. //注意: 数组定义后,里面的数据的类型必须和定义数组时候的类型完全一致
  42. // var arr5: Array<number> = ['小明',123,true,null,undefined]
  43. var arr6 = ['小明', 123, true];
  44. console.log(arr6);
  45. // console.log(arr6[3].split(''))
  46. //元组类型 (Tuple)
  47. var t1 = ['小明', 123, '小红'];
  48. console.log(t1);
  49. // console.log(t1[0].split(''))
  50. // console.log(t1[1].split(''))
  51. //枚举
  52. //枚举里面的每个数据值都可以叫做元素 每个元素都有自己的编号 从0开始
  53. var Color;
  54. (function (Color) {
  55. Color[Color["Red"] = 1] = "Red";
  56. Color[Color["Green"] = 3] = "Green";
  57. Color[Color["Blue"] = 7] = "Blue";
  58. })(Color || (Color = {}));
  59. var myColor = Color.Blue;
  60. var myColor1 = Color[3];
  61. console.log(Color);
  62. console.log(myColor);
  63. console.log(myColor1);
  64. //any类型
  65. //在编程阶段 可能我们还不知道这个变量最终为什么类型 这个时候 赋值一个any类型
  66. var nnn = 100;
  67. // nnn = 'xiaohong'
  68. nnn = true;
  69. console.log(nnn);
  70. var xxx = [1, true, 'xiaoming'];
  71. console.log(xxx);
  72. //当一个数组种要存储多个数据类型 不确定的时候 可以使用any来定义数组
  73. //这种时候 没有任何错误的提示信息
  74. // console.log(xxx[0].split(''))
  75. //void 类型
  76. //某种意义上来说 any类型的反面 表示没有任何类型
  77. function showMsg() {
  78. console.log('hello word');
  79. }
  80. console.log(showMsg());
  81. //声明一个void变量没什么用 只能赋值 null undefined
  82. var aaa = undefined;
  83. //object类型
  84. //定义一个object类型 参数是object类型 返回值也是object类型
  85. function getObj(obj) {
  86. console.log(obj);
  87. return {
  88. name: 'xiaoming',
  89. age: 30
  90. };
  91. }
  92. console.log(getObj({ name: 'zs', age: 18 }));
  93. //联合类型 表示取值可以为多种类型
  94. //需求1:定义一个函数得到一个数组或者字符串
  95. // function toString(x: number | string): string{
  96. // return x.toString()
  97. // }
  98. // console.log(toString('123'))
  99. //需求2: 定义一个函数得到一个数组或者字符串的长度
  100. function toString(x) {
  101. // return x.toString().length
  102. // if(x.length){
  103. // return x.length
  104. // } else {
  105. // return x.toString().length
  106. // }
  107. if (x.length) {
  108. return x.length;
  109. }
  110. else {
  111. return x.toString().length;
  112. }
  113. }
  114. console.log(toString(123));
  115. //类型断言 告诉编译器 我知道我自己要什么类型
  116. /*
  117. 方式1: <类型>值
  118. 方式2: 值 as 类型
  119. */
  120. // 类型推断 TS会在没有明确指定类型的时候推测出一个类型
  121. // let c1 = 100
  122. // c1 = 'xiaoming'
  123. var c1;
  124. c1 = 100;
  125. console.log(c1);
  126. c1 = 'xiaoming';
  127. console.log(c1);
  128. })();