《你不知道的javascript上卷》 知识点摘录
第一章 作用域和闭包
编译器查找类型 赋值操作的目标是谁(LHS) 和 谁是赋值操作的源头(RHS)
RHS如果在所有嵌套的作用域中遍寻不到所需的变量,引擎就会爆出ReferenceError异常,如果找到了变量,但是要对变量的值进行不合理的操作,引擎就会抛出另一种类型的错误TypeError
LHS如何在全局作用域中也无法找到目标变量,就会在全局作用域中创建一个具有该名称的变量,并将其返还给引擎,但是在‘严格模式’下执行的时候并不会创建一个全局变量,而是会和RHS一样抛出ReferenceError
eval javascript的eval() 函数可以接受一个字符串作为参数,并将其中的内容视为javascript代码,尽量不要使用eval,会对系统安全造成影响
1eval('var b = 3')
with with可以将一个没有或有多个属性的对象处理为一个完全隔离的词法作用域,因此这个对 象的属性也会被处理为定义在这个作用域中的词法标识符
尽管 with 块可以将一个对象处理为词法作用域,但是这个块内部正常的 var 声明并不会被限制在这个块的作用 ...
《你不知道javascript》 知识点摘录
第一部分 类型和语法
&& 运算符的优先级高于 ||, 而 || 的优先级高于 ? :, && || 是左关联, ? : 是右关联
在 try...catch...中,如果包含在for循环中,在一定情况下会在i++执行之前执行,如果在try...catch...中,加入yield, 由于yield的特性,try并未结束,因此catch、finally并不会立即执行 finally中的return会覆盖try和catch中的return的返回值
switch
switch中的匹配算法是===
case 中的表达式尽量不要使用 && or ||,因为匹配的数值并一定严格相等
判断字段类型
typeof
instanceof
Object.prototype.toString.call(obj)
再给html标签添加id标签的时候回默认添加一个和标签相同名称的全局变量
在script标签中是使用javascript语言,如果语句中包含</script>则会被视为script标签的结束,应该使用" ...
golang-切割字符串和拼接字符串
今天在Leecode上面练习用go语言做题,偶遇一题
剑指 Offer 58 - II. 左旋转字符串 字符串的左旋转操作是把字符串前面的若干个字符转移到字符串的尾部。请定义一个函数实现字符串左旋转操作的功能。比如,输入字符串”abcdefg”和数字2,该函数将返回左旋转两位得到的结果”cdefgab”
示例: 12输入: s = "abcdefg", k = 2输出: "cdefgab"
然后我想起来前些天偶然遇到的一个题,有用到这部分的知识
然后我急忙把对应代码复制过来,然后点击提交,令人激动的是竟然成功了,但是运行内存及时间太不理想
提交时间 提交结果 运行时间 内存消耗 语言16分钟前 通过 72 ms 9.1 MB Go
代码如下12345678910111213func reverseLeftWords(s string, n int) string { var char int = n for char < len(s) { newstr = new ...
vue中使用typescript
在此记录一下Vue中使用typescript时 遇到的一些问题
Cannot find module ‘./xxx/xxx’ or its corresponding type declarations原因是ts识别不了vue文件,在引入的最后加上.vue就可以了12345// 错误的写法import TestLayout from './components/test-layout'// 正确的写法import TestLayout from './components/test-layout.vue'
获取DOM元素时提示 Type 'HTMLElement | null' is not assignable to type 'HTMLElement'. Type 'null' is not assignable to type 'HTMLElement'
eg:
1this.scaleBox = document.querySelector('.scale ...
一些惊艳的字符串处理方法
数字格式化 描述:将一串123483245678 处理成为 123,483,245,678
eg1:自己写的一个比较麻烦的方法
123456789101112131415161718 // 只实现了整数,其他同理,最好在获取到参数之后进行验证,是否符合自己的需求 function formatNumber(value) { console.log(value) let arrStr = [] const arr = (value + '').split(',') for(let i = 0; i < arr.length; i++) { let index = 0 for(let j = arr[i].length - 1; j >= 0;j--) { if(index !== 0 && index % 3 === 0) { arrStr= [',',...arrStr] } arr ...
react-学习之路-配置
Q: 如何配置路径别名
A:
前置条件 安装 npm react-app-rewired --save-dev
根目录(即src所在目录)创建config-overrides.js, 添加如下内容
12345678910const { override, fixBabelImports, addWebpackAlias } = require('customize-cra')const path = require('path')function resolve(dir) { return path.join(__dirname, '.', dir)}module.exports = override( addWebpackAlias({ ["@"]: path.resolve(__dirname, "src") }))
修改 package.json 中的启动命令
123"scri ...
react - 学习之路 - 问题解决集锦
Q: 如何将带有html标签的字符串以html的形式在div等元素中显示出来
A: 使用元素的 dangerouslySetInnerHTML 可以将带有html标签的字符串转化为html
1dangerouslySetInnerHTML={{ __html:item.content}}(vue中直接使用v-html就可以成功转化)
react 项目中使用less
插件安装 1npm install react-app-rewired customize-cra babel-plugin-import -D
在项目根目录创建文件 config-overrides.js
1234const {...} = require('customize-cra');module.exports = override( ...);
react 按需加载配置 12345678const { override, fixBabelImports } = require("customize-cra");module.exports = override( fixBabelImports('import', { libraryName: 'antd', libraryDirectory: 'es', style: true,//或者css, true代表运 ...
重拾 react
由于最近一段时间一直在使用vue做项目,最近打算重拾react,在此记录react的点滴学习,实时更新
生命周期
routerWillLeave 路由跳转前确认
return false 取消本次跳转
return 返回提示信息,在离开Route前提示用户进行确认
12345678910import { Lifecycle } from 'react-router'const Home = React.createClass({ // 假设 Home 是一个 route 组件,它可能会使用 // Lifecycle mixin 去获得一个 routerWillLeave 方法。 mixins: [ Lifecycle ], routerWillLeave(nextLocation) { if (!this.state.isSaved) return 'Your work is not saved! Are you sure you want to leave' } ...
重拾 react - React模板 antd
由于最近一段时间一直在使用vue做项目,最近打算重拾react,在此记录react的点滴学习,实时更新
antd 是一款优秀的react 前端页面框架
插件使用 插件: antd
安装: npm install -S antd
使用: import {Layout, Button} from 'antd'
组件
布局 Layout
12import {Layout} from 'antd'const {Header,Side,Content,Footer} = Layout