企业网站开发北京,四川营销网站建设,成都市建设招标网站,男装网站的网站建设背景大厂面试题分享 面试题库
前后端面试题库 #xff08;面试必备#xff09; 推荐#xff1a;★★★★★
地址#xff1a;前端面试题库 web前端面试题库 VS java后端面试题库大全
作用域
全局作用域局部作用域#xff08;函数里#xff09;也称函数作用域块级作用域 {… 大厂面试题分享 面试题库
前后端面试题库 面试必备 推荐★★★★★
地址前端面试题库 web前端面试题库 VS java后端面试题库大全
作用域
全局作用域局部作用域函数里也称函数作用域块级作用域 {}包裹的 例如if for 括号也算
变量
全局变量 谁都能用在函数内也可以局部变量只能在该函数内用如果这个函数嵌套了子函数那么父函数定义的变量子函数也能用不能颠倒父亲的钱就是儿子的钱儿子的钱不是父亲的钱块级变量 {} 只能在{}生效
函数作用域作用
隔离变量不同作用域下同名变量不会有冲突变量有一个坑特殊情况如果函数内部或者块级作用域内部变量没有声明直接赋值也当全局变量看但是强烈不推荐
function fn(){num 10
}
console.log(num)// 10
// 函数里面的形参是局部变量作用域链就近原则
//具名函数:
function fn(){// fn 是函数名}
//匿名函数
let sum function(){// sum 不是函数名只是一个变量} 立即执行函数
立即执行无需调用 避免全局变量之间的污染
//写法一
function(形参){})(实参)
function fn(形参){//可写函数名可不写 })(实参)
//写法二
(function(形参){}(实参))多个立即执行函数必须加结束符否则报错
(function(){console.log(111)})()
(function(){console.log(222)})()当函数没有设置形参而调用时传递了实参会在函数内默认用arguments这个伪数组来存储实参说他是伪数组是因为没有 pop push等方法但是有length属性
原生js
document.querySelector(css选择器) 返回匹配的第一个元素 得到的都是一个DOM对象 document.querySelectorAll(css选择器) 返回所有匹配的元素放在一个伪数组里
let box document.querySelector(div)
box.className active
// 原生js增加类active 是类名但是会覆盖之前的类当要修改很多样式时可以将之前的类也写在‘’里面通过classList操作类控制CSS
为了解决className容易覆盖以前的类名我们可以通过classList方式追加和删除类名语法:
追加一个类 元素. classList.add(类名)删除一个类 元素.classList.remove(类名)切换一个类 元素. classList.toggle(类名)
定时器--间歇函数
返回值 intervalID 是一个非零数值用来标识通过setInterval()创建的定时器这个值可以用来作为 clearInterval() 的参数来清除对应的定时器。一般let 一个变量来存储返回值方便后续清除定时器 // clearInterval存储返回值的变量
开启定时器
//写法一函数代码写在里面
setIntervalfunction{
console.log(你好啊)
}1000//每间隔1s ,就会调用这个函数一次//写法二在外面定义一个函数在setInterval函数名1000只写函数名不写因为一写就是调用会立即执行定时器就失去作用
function show{console.log(你好啊)
}
setIntervalshow1000
定时器--延迟函数
let qq setTimeoutfunctionconsole.log(111)
{
}10000 // 会在10s后调用这个函数只会执行一次 //清除延时
clearTimeoutqq实例化时间对象
new Date()
//获取当前本地时间
let operateTime new Date().toLocaleString()时间格式化
div {{item.date | format(yyyy-MM-dd hh-mm-ss)}} /divVue.filter(format,function(value,arg){function dateFormat(date,format){if(typeof date string){var mts date.match(/(\/Date\((\d)\)\/)/);if(mts mts.length 3){date parseInt(mts[2]);}}date new Date(date);if(!date || date.toUTCString() Tnvalid Date) {return ;}var map {M:date.getMonth() 1, // 月份“d”date.getDate(), // 日“h”date.getHours(), // 小时“m”date.getMinutes(), // 分“s”date.getSeconds(), // 秒“q”Math.floor((date.getMonth() 3) / 3), // 季度“S”date.getMilliseconds(), // 毫秒}format format.replace(/([yMdhmsqS])/g,function(all,t){var v map[t];if(v ! undefined) {if(all.length 1) {v 0 v;v v.substr(v.length - 2);}return v;}else if (t y){return (date.getFullYear() ).substr(4 - all.length);}return all;});return format;}
})判断类型
instanceof
只能判断对象的具体类型判断对象里面的属性和方法其中instance 是实例 例子的意思能用判断类型的只有两种 null undefined 因为这两个类型只有一个值
typeof
返回数据类型的字符串表达式typeof 判断不了null 与 object object与array可以判断 undefined /字符串/数值/Boolean/functionnull 和undefined 没有toString()方法undefined是变量定义了但未赋值null 是var a null 定义赋值了值为null初始赋值为 null表明将要赋值为变量结束前赋值为null,是为了让对象成为垃圾对象被垃圾回收器回收
console.log(typeof null) // object数据类型分为 基本类型 和 对象类型变量类型分为 基本类型和引用类型变量内存值的类型基本类型保存的就是基本类型的数据引用类型保存的是地址值
var c {}, c 保存的是这个对象的地址值c准确的说是引用类型{}这个数据也是对象c
正则表达式
设定规则进行检测匹配
let reg /前端/
let str 我要学前端检测方法一reg.test(str)
判断是否有符合规则的字符串要么是true 要么是false
检测方法二reg.exec(str)
检索(查找)是否有符合规则的字符串 找到返回数组 否则返回null普通字符数字和英文字母元字符[a-z] ,[0-9] // 相当于abcdefg......xyz 规定用户只能输入0-9边界符
^ 以什么开头
console.log(/^哈/.test( 二哈)) // false
console.log(/^哈/.test(我开心的哈哈大笑)) //faLse以什么结尾
// 当 ^ 一起用时表示精确查找 /^哈$/ 被查找的字符串只能是哈
console.log(/^哈$/.test(我开心的哈哈大笑)) // false
console.log(/^哈$/.test(哈哈)) // false
console.log(/^哈$/.test(哈))/ /true 精确匹配量词{n,m} 只能出现n到m次字符类[ ]连字符 - 表示一个范围 [a-z] ,[0-9] [a-zA-Z]只选其中一个
constructor 构造函数
所有在class里面的函数都不用写 function //constructor(){} 是用来接收 new 实例化时传递的参数
// 创建类 classclass Star {constructor(uname,age){this.uname unamethis.age age}sing{console.log(我唱歌)}
}多个函数方法之间不需要逗号分隔
// 利用类创建对象 newlet dh new Star(刘德华18)in 运算符 检查某个属性是否在对象中返回true 和 false
console.log(age in ldh)// true 基本数据类型变量在栈内存中保存的就是值引用数据类型保存的是内存地址
获取元素子节点
元素.getElementsByTagName()元素.childNodes 子节点不是子元素子节点有空白childNodes 会返回包括文本节点在内的所有的节点标签间的空白换行也当做是文本节点但是在IE8及以下版本不会将空白计算到文本节点中元素.firstChild 子节点不是子元素子节点有空白文本节点元素.lastChild 子节点不是子元素子节点有空白文本节点
子元素
元素.children 只包含标签元素.firstElementChild 不兼容IE8 及以下
其他元素
获取body document.body获取html document.documentElement所有元素 document.all
读取样式
通过 style 设置和读取的都是内联样式优先级较高读不到样式表
div.style.widthcurrentStyle 可以读取正在显示的样式
div.currentStyle.width //只有IE 浏览器支持常用 getComputedStyle() 传递两个参数第一个参数是目标元素第二个一般是null
getComputedStyle(div,null) // 返回的是一个对象所有样式都在这个对象obj中
getComputedStyle(div,null).width // 不支持IE8 及以下getComputedStyle(div,null) 与 currentStyle 区别
在没有设置值时getComputedStyle会返回真实的值而不是默认值比如width后者会返回auto前者返回真实值currentStyle 和 getComputedStyle() 获取的 样式都只是可读的不能修改
大厂面试题分享 面试题库
前后端面试题库 面试必备 推荐★★★★★
地址前端面试题库 web前端面试题库 VS java后端面试题库大全