JS学习日记-JS基础-1

66 阅读3分钟

关于Script标签

Script标签通过src引入资源,引入资源的Script标签内容不会再被识别。

使用文件引入的好处是浏览器会下载他,其他页面也想使用的时候会直接从缓存中获取,可以节省流量,加快速度。

Q:使用script标签引入的和使用import引入的有什么区别?分别如何使用?


关于注释

多行注释在编辑器里一般是ctrl+shift+/,在代码里是

/* 123
123
*/

注意无法内联嵌套!

关于use strict

用处是修改JS老版本开发者犯下的一些错误。

上面那段话非常笼统,具体是哪些错误我也不太清楚,所以后面再看。

刚看了一下代码仓库,很多引入的node_module里面的内容的第一行都会有use strict,难怪平常开发中看到很少,原来早在模块中都引用了


关于变量和常量

const定义的一般为常量,不会再做修改。

Q:有性能上的提升吗?为什么不能全部用let?


关于数据类型

JS是动态类型语言,允许一个变量在不同类型的变量中反复变更。

所以推荐使用TypeScript,可读性增加不少啊。

Number类型

常规的数字以及NaN,Infinity。可以进行加减乘除等操作不会报错。

但是Number无法表示2的53次方量级的数据,所以最近新添加了一个类型叫做

BigInt

大于2^53 - 1的数据只能使用BIgInt来存储。

表示任意长度的整数,将n置于数字末尾来创造BigInt

并且现在BigInt存在兼容性问题,IE好像没有支持。好像也用不上

String类型

js的String类型可以使用单引号、双引号、反引号进行包裹。双引号和单引号几乎没有差别

反引号有功能扩展的作用,可以插入模板字符串 例如

let weather = "晴"
let str = `今天天气真不错啊,是一个${weather}天`
consolg.log(str) // 今天天气真不错啊,是一个晴天

Boolean类型

true和false而已啦

Null和Undefined

Null和undefined不属于上述任何一种数据类型。

null只代表空。undefined代表未定义,例如声明一个变量,但是不给他赋值,此时他的值就是undefined。

Object和Symbol类型

上述其他的类型(包括Symbol)都叫做原始类型。原始类型现在统计的有5个了,他们的值只包含一个初始内容。

Object用来存储数据集合以及更复杂的实体。

symbol用于创建对象的唯一标识符。用的也很少

注意typeof null 是Object。


关于一些直接的交互

let result = prompt(title,[default])

出现一个类似于alert的弹窗,但是有一个可以交互的输入框,用户的输入会赋值给result

方括号代表是可选项,不是必填项。

let ok = confirm("are you ok?")

根据选择的是否来返回数据,true or false。

关于类型转化

部分方法会直接进行值得类型转化,例如运算符或者alert。

如果把一些奇怪的东西转成数字会有些奇怪的现象。

valueturn into
undefinedNaN
null0
true 或者false1 and 0
字符串若是数字就是数字,不是就NaN

boolean类型的转化

直观上是空的值:0、空字符串、null、undefined、NaN 会变成false

其他都是true

那么问题来了,“0” 他是true ," "也是true


关于运算符

求幂 **

a**b 的意思是 a的b次方

加号链接字符串

加号可以拼接字符串,同时如果前一个是字符串,他会视后面的也是字符串。

alert(2 + 2 + '1') //输出的是41
alert(2 + '1' + 2) // 输出212

单独一个+ 相当于数字转义符

我擦还能这样

前置自增和后置自增

前置 -> 返回的值是加完后的数据;后置 -> 返回的是原数据