JS学习笔记

35 阅读3分钟

JS学习路线:

A:js基础部分,如:定义变量、函数、数组、字符串等的处理,内置函数、内置对象等。

B:js面向过程编程思想,封装出各个函数,试着用这些去做一些常见的小功能,如:选项卡,自定义多选按钮,自定义播放器,3D幻灯片;

C:js面向对象编程思想,试着去封装一些你自己的对象,提供出有意义的接口出来;

D:学了上述的内容,然后学常用的库,这里必须学jquery; E:学基于Jquery之上的常见插件,如:bootstrap,Layer,富文本编辑器等。 F:综合应用上面的多种库写实际项目的模板,多写几套。

一、Ant定制主题

1.安装less loader@6 2.入口文件引入antd.less 3.vue.config.js里配置lessoptions,颜色变量

二、Pinia

Store数据变响应式 import { storeToRefs } from 'pinia'; const store = useUsersStore(); const { name, age, sex }=storeToRefs(store);

重置方法 <button @click="reset">重置store // 重置storeconst reset = () => { store.$reset();};

批量更改state数据 <button @click="patchStore">批量修改数据 // 批量修改数据 const patchStore = () => { store.$patch({ name: "张三", age: 100, sex: "女", });};

批量更改部分state数据 store.$patch((state) => { state.items.push({ name: 'shoes', quantity: 1 }) state.hasChanged = true})

直接替换整个state对象 store.$state = { counter: 666, name: '张三' }

三、Let、const

const PI = 3.1415926 //const用来定义不能改变的值 -->即定义常量 const obj = { //const 可以用来定义对象 name:"张三", age:12 } obj = {name:"李四"} //不可以改成新的对象,因为它是常量 obj.name = "王五" //可以修改对象

什么时候用let ,什么时候用const? 计算定义的变量使用let,let定义的变量存在栈内存中。

定义一个函数表达式、对象、不变的值可以用const ,const 定义的常量存在堆内存。

总结: var:var定义得变量没有函数作用域概念,在函数外定义是全局变量,在函数内定义是局部变量,拥有变量提升,可以重复声明,后面会将前面得覆盖

let:定义的变量有块级作用域概念,所声明得变量只在let命令所在得代码块有效,没有变量提升,不能够重复声明。

const:定义常量、基本上和let一样,是块级作用域,没有变量提升,不能够重复声明,可以修改属性,但是不可以改成新的对象 ,因为它是常量。 使用 const 声明常量,一旦声明,就必须立即初始化,不能留到以后赋值。  const 声明的常量,允许在不重新赋值的情况下修改它的值(只适用于引用数据类型)。

声明对象类型使用 const,非对象类型声明选择 let,const不可修改声明的基本类型的值。

在不确定该使用 const 还是 let 的时候,可以暂时先统一使用const进行常量的声明,这样即使后续需要修改,也可以通过报错信息确定其位置再将const更改为let即可。

const比较符合函数式编程思想,运算不改变值,只是新建值,而且这样也有利于将来的分布式运算;最后一个原因是 JavaScript 编译器会对const进行优化,所以多使用const,有利于提高程序的运行效率,也就是说let和const的本质区别,其实是编译器内部的处理不同。

四、数组

原数组改变的方法:push pop shift unshift reverse sort splice

不改变原数组的方法:concat map filter join every some indexOf slice forEach