js|青训营

81 阅读3分钟

TypeScript

ts在社区的活跃度越来越高

ts是js的超集。ts可以在编译时发现并纠正错误,而js只能在运行时发现错误

ts带来了什么?

  • 类型安全
  • 支持了一些编译器

ts的基础类型

  • boolean,number,string
  • 枚举enum
  • any,unknown,void
  • never
  • 数组类型[ ]
  • 元组类型 tuple
  • 函数类型(ts定义函数类型时要定义输入参数类型和输出参数类型)
  • 接口(接口是为了定义对象类型)
  • 类(写法和js差不多,增加了一些修饰符、有抽象类、interface约束类用implements)

ts高级类型

  • 联合类型|

  • 交叉类型&

  • 类型断言

  • 类型别名

  • 泛型(考虑到可重用性),不仅考虑到当前能用的数据类型,也要考虑到未来可能会用到的数据类型。解决输出、输入可关联的问题。泛型的作用是临时占位,之后通过传来的类型进行推导。泛型的类型参数一般用T表示。在定义函数的时候使用泛型,在使用函数传参的时候使用的是自己需要的数据类型。使用时可以显示说明自己用的参数类型,也可以不说明,ts会有类型推断功能,根据传的参自动推导类型为xxx。extends泛型约束

    泛型中常用的操作符:

    typeof获取类型,keyof获取所有键,in遍历枚举类型,T[K]索引访问,extends泛型约束

    常用的泛型工具:

    Partial:将类型属性变为可选

    Required:将类型属性变为必选

    Readonly:将类型属性变为只读

    Pick、Record

ts声明文件

  • declare:三方库需要类型声明文件
  • .d.ts:声明文件定义
  • @types:三方库TS类型包
  • tsconfig.json:定义TS的配置

    CSS操作

$('#test-ul li[name="python"]').css('background-color','antiquewhite');//键值对

元素的隐藏和显示:

$('#test-ul li[name="python"]').show();

$('#test-ul li[name="python"]').hide();//本质可能是display:none ## 关于执行顺序

  • html是按文档流顺序执行
  • js里的代码,调用alert、prompt、confirm的代码会优先执行。即alert()和prompt()它们会跳过页面渲染先被执行。其余自上而下顺序执行

字面量

在计算机科学中,字面量是在计算机中描述事/物。看到它就知道它是什么类型的字面量

比如1000,是数字字面量

比如‘wlx’,是字符串字面量

比如[1,2,3],是数组字面量

比如{name:"wlx",age:"19"},是对象字面量

比如 true和false是布尔型字面量 ### ,符号

console.log(age,name)也是可以的,可以用逗号,这样一次打印多个变量

逗号也能用在同时声明多个变量时,但是不建议这样写,为了更好的可读性,提倡一次、一行声明一个。 class关键字是在ES6出现的,所以在还未支持ES6规范的浏览器上不支持

ES6中的class可以看作只是一个语法糖,它的绝大部分的功能,ES5都可以做到,新的class写法只是让原型的写法更加的清晰、更像面向对象编程的语法而已。下文也会进一步的说明。(摘自阮一峰的ES6入门)