1.JS包括哪些数据类型,请分别编写3种以上类型的判断函数,如isString()
A:Js数据类型分为基本类型和引用数据类型
值类型——Number、String、Boolean、Null、Undefined、Symbol
引用类型——Object、Array、Function
判断方式:
- typeof
console.log(typeof 1); //number
console.log(typeof '1'); //string
console.log(typeof undefined); //undefined
console.log(typeof new Function());//function
console.log(typeof Symbol()); //symbol
console.log(typeof true); // boolean
console.log(typeof null); //object
console.log(typeof [1]); //object
console.log(typeof {
}); //object
其中 number、string、undefined、boolean、function、symbol都可以直接判断出来
null可以通过 ===null 判断是否为null
- 区分对象和数组
(1) isArray (2).length (3).contructor() (4).tostring()
2.编写一个JS函数,实时显示当前时间,格式“年-月-日 时:分:秒”
const current_time = ()=>{
const date = new Date()
console.log(date.toLocaleString()); //2021/6/18下午8:56:43
let d = date.getDate()
let m = date.getMonth()+1
let y = date.getFullYear()
let h = date.getHours()
let min = date.getMinutes()
let s = date.getSeconds()
return y+'-'+m+'-'+d+' ' + h+':'+min+':'+s //2021-6-18 20:56:43
}
3.如何显示/隐藏一个dom元素
- display:none/除了none以外:隐藏元素并脱离文档流,隐藏该区域,不占实际空间,但对后台来说真实存在,可以获取该元素
- visibility:hidden/visible :只是可见或不可见,占用文档空间
4.如何添加html元素的事件处理,有几种方法
- 通过HTML元素属性。简单说来就是在html结构中,给你要添加事件的元素添加一个属性。属性名为 ‘on’ + 事件名。比如onclick
<div onclick="alert('fucku')">aaa</div>
-
通过对象属性
document.getElementById(‘n’).onclick = function(){ //do something} -
W3C监听方式
elemennt.addEventListener(事件名,回调函数,true || false)
true表示在事件传播阶段捕获事件,false表示在事件冒泡阶段捕获事件,一般为false
——事件传递有两种方式:冒泡与捕获。
事件传递定义了元素事件触发的顺序。 如果将 p 元素插入到 div 元素中,用户点击p 元素, 哪个元素的 “click” 事件先被触发呢?
在冒泡 中,内部元素的事件会先被触发,然后再触发外部元素,即: p元素的点击事件先触发,然后会触发 div 元素的点击事件。
在 捕获中,外部元素的事件会先被触发,然后才会触发内部元素的事件,即: div 元素的点击事件先触发 ,然后再触发 p 元素的点击事件。
- IE专属的中间模型添加事件
element.attachEvent( ‘on’ + 事件名,回调函数);
5.如何控制alert中的换行
\n 换行符 \r回车符
<div class='b' onclick="alert('fucku\nbitch')">aaa</div>
6.判断一个字符串中出现次数最多的字符,统计这个次数
const maxchar = (s)=>{
const map = new Map()
for (let i of s){
if(!map.has(i)) map