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有点像,也和我之前学习的编程语言像,加油,特种兵
评论