20200825-叶梦宇

学习总结

JS(面试重要)

“ues strict”:js的严格模式

1,特点

解释型语言:编译一行,执行一行。

弱类型语言:不太适合大型项目开发。

不需要第三方插件,直接在浏览器的控制台上就可以编译了

基于对象:

属性:对象的特征color size

方法:对象行为,动态的

不关注内部的细节

跨平台

可以在服务端运行。

2

编写js

网页中js要写在script标签内。

执行自己编写的js逻辑代码将js写在主要代码后面。

console控制台,log日志

《script》

console。log{”hello world“}

《script》

在浏览器的控制台输出hlleo world

运行js

运行js,需要脚本解释引擎,浏览器自带脚本解释引擎

或者独立安装node.js(服务器端)

调试js

在浏览器中f12检查

js代码规范

1,js严格区分大小写;

2,代码结尾可以使用“;”结束,也可以不使用,推荐 使用分号结束

3, 字符串必须要引号包裹, 可以是单引号。也可以是双引号,如果字符串中出现了字符串的嵌套,那么里面和外面只要使用不同引号就可以

4,注释

单行注释//

多行注释/* */

js组成

es

dom

bom

初次接触dom

使用dom的方法向网页

document在dom树结构中,表示顶级对象,表示整个文档。

使用write方法可以将文本绘制到网页中

docuument.write(“xcxxxx”)

使用write方法会破坏页面结构,开发中根本不可能使用

只要发现问题,就输出到控制台中式神

BOM

alert 警告e弹窗

3,js输出

prompt(‘xxx’)弹出输入框

confirm 弹出确认框。

4,变量

定义变量 var 进行声明 var 变量名=变量值; var a=1;

程序当中我们需要反复使用一个值的 时候,就要把这个值保存下来,称为变量。

变量默认值undefined 当我们只给变量名没给变量值 时

var a=“string”

console。log(a)结果string

var a=“哈哈哈哈哈哈”

console。log(a)结果哈哈哈哈哈

var a=1

console。log(a)结果1

弱类型语言的特征,隐式转换,在代码执行的过程,程序会自动转换 不需要我们

5,常量

使用const声明 const 常量名=值;

常量值一旦 声明就不允许进行修改

常量值使用大写字母命名

常量在创建的时候,一定要直接赋值

6,数据类型(原始数据类型)(引用数据类型)

原始类型分类

number :不加引号,自动是number类型

整型:二进制(是由0.1组成的,在js中:0b(标示二进制))

八进制(是由 0-7组成 的,在js中:0(标示八进制),十进制,十六进制(0-9 ABCDEF 在js中 :0x(标示十六进制)ABC)

string:

判断数据类型:typeof 数据

字符串储存:用Unicode码储存 查看某个字符的Unicode码 "a".charCodeAt(); 结果:97

Unicode码占用字节 每个字母/数字字符,占1字节 每个汉字,占2字节

其他编码占用字节
utf-8

每个字母/数字字符,占1字节

每个汉字,占3字节

GBK

每个字母/数字字符,占1字节

每个汉字,占2字节

boolean

判断结果 true false

undefined:变量声明后没有赋值的默认值 就是undefined

null 空

空,常用于引用类型。专门由程序自动为一个变量赋初值,很少主动使用

实例:

​ var a=null;

引用数据类型 object

引用类型

数组(Array)对象(Object)函数(Function)

注意:使用typeof查看数据类型,这个三种类型得到的都是object

数据类型转换(面试必考题)

弱类型 语言: 声明变量时无需提前规定变量中存储数据的类型,一个变量先后可保存不同类型的数据,JS会根据自身的需要,隐式转化数据的类型

隐式转换: 无需程序员干预,程序自动完成的类型转换

数值型+字符串型==>字符串型 1+'2' ==> '12'

数值型+布尔型>数值型 1+true>2 1+false==>1 true代表1,false代表0

字符串型+布尔型>字符串型 'string'+true>'stringtrue'

null 转换出来是0;

字符/数字 结果是NaN

NaN(not a number)表示一切不能 正常 转换的数字

NaN 不大于,不小于 ,不等于任何值,包括 自身

NaN和任何数进行计算,结果都是NaN

console.log(10/0) 结果 infinity 无限大

强制转换: 程序员主动调用转化函数实现的类型转换

Number()将数据转换为数值型

Number('9'); ==> 9

​ Number('2a'); ==> NaN

​ Number(true); ==> 1

​ Number(undefined); ==> NaN

​ Number(null); ==> 0

parseInt()将数据转换为整型

直接按字符位数 一位一位的 转换,如果当前的位数 不能转换,就直接输出NaN

parseInt(2.5) ==> 2

​ parseInt(undefined) ==> NaN

​ parseInt('2a') ==> 2

​ parseInt('string') ==> NaN

​ parseInt(true) ==> NaN

pareseFloat()将数据转换为单精度浮点型

注意:小数点只读取第一个,再碰到小数点就停止读取

parseFloat('2.9a') ==> 2.9

​ parseFloat(true) ==> NaN

x.toString()将数据 转换为字符串

注意:x不能是null和undefined

实例:

​ var n=5;

n.toString();

String(123) // '123'

注意:x可以是任何数据类型,其实隐式转换都是自动调用String()

实例:

Boolean(x)

规则:只有五个值会被转为false( 0 , null , NaN , undefined , "" ),其余任何值都转为true

实例:

​ Boolean(null) //false

​ Boolean('string') //true

7,字面量(先了解)

字面量表示如何表达这个值,一般除去表达式,给变量赋值时,等号右边都可以认为是字面量

字面量分类
字符串字面量
数值字面量
数组字面量
对象字面量
函数字面量
regexp字面量

8,运算符和表达式

算数运算符(面试题)

运算符 优先级 ++大于+

%取余 ++自增

冒泡排序的时候 ,要用二维数组

隐式转换
默认情况:一切转为number,再算数计算
特殊情况

比较运算符

== 只是比较两个值是否相等

=== 不仅比较值,还会比较数据类型是否一样

数字和字符串比较,字符串会转为数值型之后再进行比较 隐式转换

两个字符串比较,比较的是首字符的Unicode码

NaN和任何值比较(> < <= >= == ===)都是flase,包括自身

isNaN(num),专门判断num是不是NaN,经常反用,专门用来判断num是不是有效的数字,!isNaN(num)

逻辑运算符

&&(并且) ||(或者) ! (非)

逻辑短路
1. && 当第一个条件为false的时候,就不需要再执行第二个条件了
2. || 当第一个条件为true的时候,就不需要再执行第二个条件了

学习心得

今天终于学到了JavaScript,也算是更深入的了解网页,它和昨天学习的sass有点像,也和我之前学习的编程语言像,加油,特种兵

评论