简介
技术不断地在更新, 我们不断地去追求,但是不能忘记了基础的重要性,还是回来学学一些基础知识吧
javasript执行机制
// js是单线程特点,自上而下,同一时间只能做一件事, js为处理用户中的页面交互和操作dom而诞生的
// 当js解析执行时,被引擎分为两类任务: 同步任务和异步任务
// 同步任务会推到执行顺序去执行这些任务
// 异步任务,当其执行时候,会被放到任务队列等待js引擎执行
// 当执行栈执行完所有的同步任务,js引擎会去任务队列检查是否有任务存在, 有的话,就把任务放到执行栈那执行,然后又检查任务队列是否有任务,这种循环机制,事件循环(Event Loop)
// 对于任务队列更细分类: 微任务和宏任务
// 宏任务: setTimeout \ setInteval等, 会被放到宏任务队列
// 微任务: promise的then \ mutation Observe等, 会被放到微任务队列
// Event Loop执行顺序
// 首先执行执行栈上的
// 执行栈清空后去微任务全部
// 取宏任务的第一条执行
// 然后回到第二步
// 注意: 微任务执行全部, 宏任务只执行第一条
JavaScript是弱数据类型: JavaScript也不知道变量到底属于那种数据类型,只有赋值了才清楚。
BFC
// BFC: 块级格式化上下文 独立的渲染容器 里外元素互不影响 解决元素边距重叠问题
// 激活方式:
// overflow的值不是visible属性
// float的值不是none
// display的值是inline-block \ table-cell \ flex
// position的值不是 static或者 relative
数据类型
基本数据类型 number string boolean undefined null
引用类型 date function object
undefined 未定义类型
console.log(1 + undefined); // NaN
NaN 代表一个计算错误。它是一个不正确的或者一个未定义的数学操作所得到的结果
null 空类型 空值
console.log(1 + null); // 1
检测方式
typeof 检测数据类型
instanceof 返回 true,如果对象是对象类型的实例
转换
隐式转换 某些运算符被执行时,系统内部自动将数据类型进行转换,这种转换称为隐式转换。
console.log('5' - 3); // 2
显示转换 与隐式类型转换相反,强制类型转换需要手动进行,在 JavaScript 中,强制类型转换主要是通过调用全局函数来实现的,例如 Number()、Boolean()、parseInt()、parseFloat() 等
console.log(Number('5' - 3)) // 2
string 常用方法
indexOf() 方法返回字符串中指定文本首次出现的索引(位置):
console.log('urnf'.indexOf('f')); // 3
slice() 提取字符串的某个部分并在新字符串中返回被提取的部分。 slice(start, end)
console.log('hyfi'.slice(2, 3)); // f
trim() 方法删除字符串两端的空白符:
console.log(" tt ".trim()); // tt
split() 将字符串转换为数组:
console.log("aaaa".split('')); // [a,a,a,a]
number 常用方法
Number(数据) 转数字类型
console.log('88圣诞节') // NaN 非数字变NaN
parseInt(数据) 只保留整数
console.log(parseInt(88.99)) // 88
parseFloat(数据): 可以保留小数
console.log(parseFloat(44.4444)) // 44.44
数字转字符 变量.toString()
console.log(88.toString()) // '88'
数组常用方法
pop() 方法从数组中删除最后一个元素:
push() 方法(在数组结尾处)向数组添加一个新的元素:
shift() 方法会删除首个数组元素,并把所有其他元素“位移”到更低的索引。
unshift() 方法(在开头)向数组添加新元素,并“反向位移”旧元素:
splice() 方法可用于向数组添加新项:
slice() 方法数组的某个片段切出新数组。创建新数组。它不会从源数组中删除任何元素。
let arr1 = ['1', '2', '3', '4']
console.log(arr1.splice(1,2, '6', '7')); // ['2', '3']
console.log(arr1); // ['1', '6', '7', '4']
console.log(arr1.slice(1,2)); // ['6']
console.log(arr1); // ['1', '6', '7', '4']
最后
w3c定义,组织,对web进行标准化, 结构 表现 行为(html css js)
css中文名是 层级样式表