你不知道的JavaScript(中卷)笔记(二)

强制类型转换

众所周知,JavaScript是弱类型语言,所以其值的类型是可以随意进行转换的,分为显式强制类型转换和隐式强制类型转换

1
2
3
let b = 12
let a = '' + b // 隐式强制类型转换
let c = String(b) //显式强制类型转换

抽象值操作

熟悉toString,toNumber,toBoolean,完成数值、字符串、布尔值互相的转换

你不知道的JavaScript(中卷)笔记(一)

最近在匆匆看了`webpack@4.0文档之后,又被《你不知道的JavaScript》吸引了目光。这本书针对JavaScript`中存在的一些容易出错的地方进行解答,可以夯实自己的基础。

类型

JavaScript有七种内置类型,包括null undefined number string boolean objectsymbol(ES6)

  1. JavaScript的变量是没有类型的,有类型的是值。但变量持有值的类型。类型定义了值的行为特征
  2. undefined表示声明后但未赋值的,undeclared表示未声明的。这两者有稍微的区别,但在JavaScript中并未区分

webpack建立开发环境

webpack的强大在开发中能够得到更直白的体现,学习使用Webpack搭建开发环境,能够让开发更简单一些

使用source map

webpack能够打包我们的代码,虽然使用起来很方便,但在排除错误时,只会指向我们打包生成的bundle.js,很难定位到相应的准确位置。使用source map,能够跟踪错误的警告信息。
source map有许多配置信息,可以仔细查阅
webpack.config.js

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const CleanWebpackPlugin = require('clean-webpack-plugin')

module.exports = {
entry: {
app: './src/index.js',
print: './src/print.js'
},
plugins: [
new HtmlWebpackPlugin({
title: 'Output Management'
}),
new CleanWebpackPlugin(['dist'])
],
output: {
filename: '[name].bundle.js',
path: path.resolve(__dirname, 'dist')
},
devtool: 'inline-cheap-module-source-map'
}

初识webpack@4.0

webpack

webpack 是一个现代 JavaScript应用程序的静态模块打包器,当 webpack 处理应用程序时,它会递归地构建一个依赖关系图(dependency graph),其中包含应用程序需要的每个模块,然后将所有这些模块打包成一个或多个 bundle

webpack的四个核心概念

入口(entry)

入口起点标明了webpack应该使用哪个模块,从哪个文件作为构建依赖包的开始
可以在webpack.config.js中的entry配置简单入口

1
2
3
module.exports = {
entry: './path/to/my/entry/file.js'
};