2017年11月8日
// x进制 => 10 进制
// parseInt(数字, 进制(2/36));
parseInt(1101, 2); // x2 => 10 13
parseInt(1101, 8); // x8 => 10 5777
parseInt(1101, 36); // x16 => 10 47953
// 10 => x 进制
// 使用 number 对象,toString 进行进制切换
var t = 147852.4755;
console.log(t.toString(16));ES7(ES2017) 中提出的前端异步特性。
async顾名思义是“异步”的意思,async用于声明一个函数是异步的。而await从字面意思上是“等待”的意思,就是用于等待异步完成。并且await只能在async函数中使用。
await 操作符用于等待一个 Promise对象。它只能在异步函数 async function 中使用。
sessionStorage 会话存储的,但直接通过浏览器新打开两个页面,相同域名下它们不共享。即,A、B页面某页面设置sessionStorage,另一个页面不可读取其值。
包管理工具有 npm, yarn, pnpm,bun 等,npm 为nodejs内置,bun为bunjs一体化管理包。
检查npm版本更新状态,根据 package.json
# 使用 npm 查看当前的版本更新状态
npm outdated
# yarn 查看依赖当前的更新状态
yarn upgrade-interactive
yarn upgradeInteractive
yarn upgrade-interactive --latest主要命令介绍
# 根据默认初始化库
npm init -y
# 交互式初始化
npm init
# npm install <tarball url>
# https://github.com/<user>/<project>.git#<branch>
# [options]
# --save-dev 已开发的模式保存
# 查看全局安装的 npm 包
npm list -g --depth 0
# 查看项目中引用的 webpack 版本
npm ls webpack
# 依照 package-lock.json 文件按照依赖,而不主动更新
npm ci
# 与 npm ci 类似(yarn 1.22 版本)
yarn install --frozen-lockfileyarn 工具,npm包管理工具
# 获取当前配置的镜像源
yarn config get registry
# 获取设置阿里镜像
yarn config set registry https://registry.npmmirror.com/js 测试框架
js 压缩工具可使用如:
- esbuild 支持js文件压缩,https://github.com/evanw/esbuild
- swc 可压缩(运行命令错误),https://github.com/swc-project/swc
- minify-html 可压缩文件,但压缩命令复杂压缩的文件可能无法运行 https://github.com/wilsonzlin/minify-html
esbuild
#
# esbuild
# 安装
go install github.com/evanw/esbuild/cmd/esbuild@latest
# 将 Photoclip.js 文件压缩为 Photoclip.min.js
esbuild Photoclip.js --minify --outfile=Photoclip.min.js- 创立时间 1990
- 创始人 蒂姆·伯纳斯-李
坐标点:
clientX, clientY // 鼠标指针向对于浏览器页面(当前窗口)的坐标
// 客户端区域
layerX, layerY //
movementX, movementY
offsetX,offsetY
pageX, pageY // 文档坐标而非窗口坐标,这2个属性不是标准属性,但得到了广泛支持。
// IE事件中没有这2个属性
x, y
screenX, screenY // screen 屏幕坐标系
Element元素
// 屏幕可到达高度
网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
网页可见区域宽:document.body.offsetWidth (包括边线的宽)
网页可见区域高:document.body.offsetHeight (包括边线的宽)
网页正文全文宽:document.body.scrollWidth
网页正文全文高:document.body.scrollHeight
网页被卷去的高:document.body.scrollTop
网页被卷去的左:document.body.scrollLeft
网页正文部分上:window.screenTop
网页正文部分左:window.screenLeft
屏幕分辨率的高:window.screen.height
屏幕分辨率的宽:window.screen.width
屏幕可用工作区高度:window.screen.availHeight
屏幕可用工作区宽度:window.screen.availWidth outerHeight / innerHeight
响应是框架,双向数据绑定,是指 数据层(Model)、视图层(View)、数据视图(ViewModel)的响应框架。
v1.12.4发现attr与data方法交叉设置和取值得到的数据不一致,区别在于后者是单向绑定而不更新DOM。
React is a declarative, efficient, and flexible JavaScript library for building user interfaces. It lets you compose complex UIs from small and isolated pieces of code called “components”.
- A JavaScript library for building user interfaces (用于构建用户界面的JavaScript库)
- jsx javascript xml, XML-like syntax called JSX
- 自定义类型,必须以大写开头,否则将视作 html 文档格式
- React.Component 组件
- this.props 传入的属性值 如: <React.Component title="85"> => this.props.title == '85'
- this.props 属性,通过
render()函数渲染 - this.state 状态值
- this.setstate 设置状态值
组件接受称为属性(props properties 的简称)的参数,通过方法render 渲染为一个有层次化(结构)的视图。
-
函数式
const element = () => <h1>标题</h1>function Welcome(props) { return <h1>Hello, {props.name}</h1>; } const element = <Welcome name="Sara" />; ReactDOM.render( element, document.getElementById('root') );
-
类式
extends React.Component
- 20170717
author: Evan You the progressive javascript framework (渐进式javascript框架)
Vue 采用自底向上增量开发的设计
-> 视图层
-> 能为复杂的单页应用程序提供驱动
-> 虚拟 DOM 原理
-> 类 MVVM 框架
-> 20kB min+gzip 运行大小
- 字符串模板语法, 支持: mustache 模板语法
- HTML 原始属性,通常以 v- 打头,也有相应的简写方法
- v-bind 数据绑定
- v-bind:id = "idx" => :id = "idx"
- v-bind:href = "xf" => :href = "xf"
- v-html 原始 HTML
- v-on 事件绑定
- v-on:click => @click
- v-model 表单语法, 表单控件元素上创建双向数据绑定
- v-if/v-for 条件等语句判断
- v-bind 数据绑定
- template 组件,通过浏览器编译 js, .vue 视图文件
- 组件组合: prop 向下传递,事件向上传递
- 注册全局组件: Vue.component(tagName, options)
- 局部组件:
var Child = {
template: '<div>A custom component!</div>'
}
new Vue({
// ...
components: {
// <my-component> 将只在父组件模板中可用
'my-component': Child
}
})使用 typescript 编写的,提供了一套声明式的、组件化的编程模型,以实现高效地开发用户界面。声明式也体现了其的指令化,如v-attributes 。
概念:
-
SFC(Single-File Components) 单文件组件,也即是
*.vue文件。 -
API 风格:选项式 API(Options API) 和 组合式API (Composition API),选项式API与vue2及以前的版本一致,组合式常与
<script setup>搭配使用更偏向于函数式编程。
常见图形化库:
Scalable Vector Graphics
基于XML的矢量图
<svg>画布- viewBox 画布可视范围
画布,位图
为了真正能够让你的场景借助 three.js 来进行显示,我们需要以下几个对象:场景、相机和渲染器,这样我们就能透过摄像机渲染出场景。
Threejs使用的是右手坐标系,这源于opengl默认情况下,也是右手坐标系。
- FOV - 视野角度 就是无论在什么时候,你所能在显示器上看到的场景的范围,它的值是一个角度。
- aspect ratio - 长宽比 也就是你用一个物体的宽除以它的高的比值。比如说,当你在一个宽屏电视上播放老电影时,可以看到图像仿佛是被压扁的
- vertice 顶点
- face 面
- mesh 网格
- scene 场景
- animate 动画渲染
- ployfills 填充物
几何体
- BoxGeometry 立方体几何
- BoxBufferGeometry 立方缓冲几何体
- CircleBufferGeometry 圆形缓冲几何体
- CircleGeometry 圆形几何体
- ConeBufferGeometry 圆锥缓冲几何体
- ConeGeometry 圆锥几何体
- CylinderGeometry 圆柱几何体
- DodecahedronGeometry 十二面几何体
- EdgesGeometry 边缘几何体
- ExtrudeGeometry 挤压几何体
- IcosahedronGeometry 二十面几何体
- LatheGeometry 车削几何体
- OctahedronGeometry 八面几何体
- ParametricGeometry 参数化几何体
- PlaneGeometry 平面几何体
- RingGeometry 圆环几何体
- ShapeGeometry 形状几何体
- SphereGeometry 球几何体
- TetrahedronGeometry 四面几何体
- TextGeometry 文本几何体
- TorusGeometry 圆环几何体
- TorusKnotGeometry 圆环扭结几何体
- TubeGeometry 管道几何体
- WireframeGeometry 网格几何体
3D 模型格式
- gltf Graphics Language Transmission Format(图形语言传输格式)
用于运行js的解释器
由于node使用多存在多版本非兼容问题,可使用版本管理工具
- nvm 相关连接, nvm、nvm-windows
版本设置含义
- ~ 会匹配最近的小版本依赖包,比如~1.2.3会匹配所有1.2.x版本,但是不包括1.3.0
- ^ 会匹配最新的大版本依赖包,比如^1.2.3会匹配所有1.x.x的包,包括1.3.0,但是不包括2.0.0
*这意味着安装最新版本的依赖包
{
"devDependencies": {
"babel-core": "~6.26.3",
"babel-loader": "~7.1.4",
"babel-preset-env": "~1.7.0",
"babel-preset-es2015": "~6.24.1",
"lodash": "~4.17.10",
"webpack": "~4.12.1",
"webpack-cli": "~2.1.5"
},
"dependencies": {
"js-base64": "^2.4.5",
"pdfmake": "^0.1.37",
"store": "^2.0.12"
}
}缓存处理,如删除或查看
# 获取 npm 缓存目录
npm config get cache
# 删除yarn缓存
npm cache clean --force
缓存处理
# 删除本地缓存
yarn cache clean





