1、变量命名规则
1.变量命名必须以字母或是下表符号“_”或者“$”为开头
2.变量名长度不能超过255个字符。
3.变量名中不允许使用空格。
4.不使用脚本语言中保留的关键字及保留符号作为变量名。
5.变量名区分大小写。(javascript是区分大小写的语言)
2、数据类型有几种,判断数据类型的方法
七种数据类型:numeber,null,undefinde,string,boolean,object,symbol
JS数据类型的判断主要有三种方法:typeof、instanceof、Object.prototype.toString.call()
typeof
3、哪些运算符常用作布尔判断简述运算符的优先级
逻辑运算符 ||,&&,!, . [] () 字段访问、数组下标、函数调用以及表达式分组
4、写出以下常用函数:生成随机数、数字四舍五入、字符串查询子串、字符串分割为数组、检索数组中的元素、数组拼接成字符串、向数组中增删元素
rand()生成随机数,
toFixed()四舍五入
substr方法用于返回一个从指定位置开始的指定长度的子字符串
split()字符串分割
results.push()寻找索引
join("")数组拼接成字符串
push()增加
remove()删除
5、怎样改变元素的内容、属性、样式
修改内容:通过dom获取标签的id,使用inner HTML修改该元素的内容
修改样式:通过dom获取标签的id,使用style(要修改的样式)如color
修改属性:通过dom获取标签的id,使用setAttribute修改属性。
6、怎样获取浏览器窗口尺寸
网页可见区域宽:document.body.clientWidth
网页可见区域高:document.body.clientHeight
7、怎样控制浏览器前进、后退、页面跳转
window.history.forward()前进
window.location跳转(一)
window.navigate跳转(二)
window.open跳转(三)q
window.history.back()
后退
8、遍历数组和对象的常用方法有哪些
for循环
foreach遍历(可以同时取出数组中的值和值对应的下标)
for --- of遍历
for --- in遍历(常见用在对象中,遍历对应的key值和value值)
map循环
every循环
Each循环
9、Js数据类型强制转换的方法(写出三种即可)
转换函数、强制类型转换、利用js变量弱类型转换。
10、说明全局变量和局部变量的作用范围和生命周期
局部变量:
1.局部变量:在函数内部用var声明的变量
2.局部变量只作用于函数内,所以不同的函数可以使用相同名称的变量
(函数参数只在函数内起作用,属于局部变量)
3.局部变量在函数开始执行时创建,函数执行完后局部变量会自动销毁
全局变量:
全局变量:变量在函数外定义,网页上的所有脚本和函数都能访问它
变量生命周期:
1.变量生命周期在声明变量时开始
2.局部变量在函数执行完毕后被销毁
3.全部变量在页面关闭后被销毁
11、例举3种强制类型转换和2种隐式类型转换?
强制:to string string number Boolean
隐式:“+”“-”“!!”
12、向数组中添加和删除元素的方法有哪些?至少各写一个
1.push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。
2.unshift方法就是将要添加的元素添加到数组头部
3.pop方法是与push对应的,删除最后一个元素,数组长度-1
4.splice方法是修改方法,具有添加和删除功能
5.Shift删除数组中第一个元素
13、什么是事件委托
事件委托就是利用冒泡的原理,把本应该添加到某个元素上的事件委托给他的父级,从而减少DOM交互达到网页优化。
14、闭包是什么?有什么特性?对页面有什么影响?
闭包是将函数内部和函数外部连接起来的桥梁。 特性:函数嵌套函数;内部函数可以读取到外部函数的变量和参数;不会被垃圾回收制度回收。
使用闭包会占有内存资源,过多的使用闭包会导致内存溢出,影响页面刷新速度。
15、如何创建新元素并添加到页面中
先在html页面创建一个空div var div = document.createElement(“p”);
Div.appendChild(p);先创建元素然后插入页面中的空div
16、希望获取到页面中所有的checkbox怎么做
var domList = document.getElementsByTagName('input');
var checkBoxList = [];
for (var i = 0; i < domList.length; i++) {
if (domList[i].type == 'checkbox') {
checkBoxList.push(domList[i]);
}
}
console.log(checkBoxList)
17、创建一个数组 每一项都是0到50之间的随机数字,请写出关键代码
var randNums = [];
for (i = 0; i < 50; i++) {
var randNum = Math.floor(Math.random() * i);
randNums.push(randNum);
console.log(randNums);
}
18、函数调用的方式有几种(写出三种即可)
1.函数调用 模式 声明式: function fuc() {}
表达式式: var func = function() {};
Function: new Function( ‘参数’,…,’函数体’ );
2.方法调用 模式 method
3.构造器模式(构造函数模式, 构造方法模式)
特点:使用 new 关键字引导
19、JS有几种引入方式
内部引入。行内引入,外部引入
20、null和undefined的区别是什么?
Null是空值typeof返回的是object
Undefined是未定义的,返回的是Undefined
21、js的特点是什么
简单性,安全性,动态性,跨平台
22、怎样获取到页面中的
DocumentgetElementById(‘con’);
23、JavaScript输出数据的方法?
弹窗,console.log(),document.write,innnerhtml,innertext。
24、什么是JavaScript
Js是一种脚本语言,不需要编译。主要用于web,它用于增强html页面;可以嵌入html和代码中。
25、javascript的typeof返回哪些数据类型?(写英文)
Object,undefined,number,string,boolean
26、请写出添加 删除 替换 插入节点所用的方法?
1、创建元素节点:createElement
创建文本节点:createTextNode;
2、插入节点:appendchild:在要插入的元素节点上调用,他插入指定的节点使其成为那个节点的最后一个子节点。
3、删除节点:removeChild;从文档树中删除一个节点(先找到要删除节点的父节点,用父节点删除);
4、替换节点:replaceChild;将一个节点替换为另一个节点(先找到要替换的节点的父节点,用父节点替换);
27、什么是数组,什么是对象,并说出他们的区别
对象,就是一种无序的数据集合,由若干个“键值对”构成
数组:组也是对象,数组只是将对象里面无序的数据有序化。
区别:数组表示有序数据的集合,而对象表示无序数据的集合。
数组的数据没有”名称”,2但是有对应的索引;对象的数据有”名称”(属性名),而对象因为是无序数据的集合,所以不存在索引
28、请写出js中的两种定时器,区别是什么?
setTimeout 和 setInterval。
区别setTimeout 只执行一次 setInterval重复执行
29、js两要素是什么
选择器和函数
30、split和join的区别
join() 方法用于把数组中的所有元素放入一个字符串
split(a,b)方法:用于把一个字符串分割成字符串数组