HTML与Js
- script标签都可以放在什么位置,有什么区别。
- 什么是延迟脚本。
- 什么是异步脚本。
- 怎么在XHTML中使用script标签。
- 使用外部js有什么优点。
- 怎样开启标准模式。
- noscript元素是什么,怎么使用它?
基本概念篇
- js区分大小写吗?
- 描述标识符的格式,并写出几个例子。
- 分别写一个标准的单行注释和一个标准的多行注释。
- 怎么启用严格模式。
- 怎样声明一个全局变量。
- 请使用一条语句同时声明3个变量。
- js中存在几种数据类型,分别是?
- typeof操作符是什么,怎么使用,返回值分别代表什么意思。
- undefined这个值是什么,怎么产生的?
- 下面这段代码返回什么?
//var age;
alert(typeof age);
- null类型是什么?怎么使用?
- 下面这段代码会输出什么?
alert( null == undefined);
- 声明一个Boolean类型,下面这个代码是否正确?
var flag = True;
- 下面这些类型在自动转换成Boolean类型的时候,什么情况下转换成true,什么情况下转换成false:
- Boolean
- Number
- String
- Object
- Undefined
- 分别声明一个十进制数字,一个八进制数字,一个十六进制数字。
- 浮点型和整型在内存空间上有什么区别?
- e表示法怎样使用?使用一下。
- 浮点型的最高精确度是多少?
- 输出js中可以保存的最小的数。
- 输出js中可以保存的最大的数。
- 如果数字的大小超过了最大值和最小值,会发生什么?
- 如何判断数字的大小是否超过了最大值或者最小值?
- 什么是NaN?
- 说明以下代码的输出结果:
alert(3/0);
alert(NaN == NaN);
alert(1 + NaN);
- 说明以下代码的输出结果:
alert(9/0);
alert(0/0);
alert(-9/0);
- 如何判断一个值是不是NaN;
- 说明以下代码的输出结果:
alert(isNaN(NaN));
alert(isNaN(10));
alert(isNaN("10"));
alert(isNaN("blue"));
alert(isNaN(true));
- 说明以下代码的输出结果:
alert(Number(true));
alert(Number(false));
alert(Number(1));
alert(Number(undefined));
alert(Number("123rr"));
alert(Number("11.11"));
alert(Number("0xf"));
alert(Number("070"));
alert(Number(" "));
alert(Number("dd"));
- 说明以下代码的输出结果:
alert(parseInt("1234uuu"));
alert(parseInt(" "));
alert(parseInt("0xA"));
alert(parseInt("22.5"));
alert(parseInt("070"));
alert(parseInt("70"));
alert(parseInt("oxf"));
- 怎么指定上述代码转化成数字的进制?
- 说明以下代码的输出结果:
alert(parseFloat("1234blue"));
alert(parseFloat("0xA"));
alert(parseFloat("22.5"));
alert(parseFloat("22.44.55"));
alert(parseFloat("0908.5"));
alert(parseFloat("3.125e7"));
- 写几个String中的字符字面量。
- 取得字符串的长度。
- 把一个整型转化成字符串。
- 把10分别转化成二进制,八进制,十进制,十六进制的字符串。
- 什么情况下会调用string() 方法,有什么区别?
- 说明以下代码的输出结果:
var value1 = 10;
var value2 = true;
var value3 = null;
var value4 ;
alert(String(value1));
alert(String(value2));
alert(String(value3));
alert(String(value4));
- 声明一个对象。
- constructor是做什么的,怎么使用。
- hasOwnProperty(propertyName)是做什么的,怎么使用。
- 说明以下代码的输出结果:
var num1 = 2;
var num2 = 20;
var num3 = --num1 + num2; //num3 = ?
var num4 = num1 + num2; // num4 = ?
var num1 = 2;
var num2 = 20;
var num3 = num1-- + num2;
var num4 = num1 + num2;
var s1 = "2";
var s2 = "Z";
var b = false;
var f = 1.1;
var o = {
valueOf: function() {
return -1;
}
};
s1++;
s2++;
b++:
f--;
o--;
- 说明以下代码的输出结果:
alert(!false);
alert(!"blue");
alert(!0);
alert(!NaN);
alert(!"");
alert(!12345);
- 说明以下代码的输出结果:
alert(!!"blue");
alert(!!0);
alert(!!NaN);
alert(!!"");
alert(!!12345);
- 说明以下代码的输出结果:
alert(true && true);
alert(true && false);
alert(false && true);
alert(false && false);
- 说明以下代码的输出结果:
var found1 = false;
var result = (found1 && somUndefinedVariable);
alert(result);
var found2 = true;
var result = (found2 && someUndefinedValiable);
alert(result);
- 说明以下代码的输出结果:
alert( true || true);
alert( true || false);
alert( false || true);
alert( false || false);
- 说明以下代码的输出结果:
var found 1 = true;
var result = (found1 || someUndefinedVaiable);
alert(result);
var found2 = false;
var result = (found2 || someUndefinedVaiable);
alert(result);
- 解释下面这行代码的意思:
var myObject = preferredObject || backupobject;
- 说明以下代码的输出结果:
alert(Infinity * 0);
alert(Infinity * Infinity);
alert(Infinity * 100);
alert("123" * 10);
alert(0 / 0);
alert(Infinity / Infinity);
alert("123" / 0);
alert(26 % 5);
alert( Infinity + Infinity);
alert(Infinity + -Infinity);
alert( 0 + 0 );
alert( -0 + -0);
alert( +0 + -0);
alert( 5 + 5);
alert(5 + "5");
var result1 = 5 - true;
var result2 = NaN - 1;
var result3 = 5 - 3;
var result4 = 5 - "";
var result5 = 5 - "2";
var result6 = 5 - null;
var result = "Black" < "abc";
var result = "23" < "3";
var result = "23" < 3;
var result = "a" < 3;
var result = NaN < 3;
var result = NaN >= 3;
- 判断以下的值是否相等。
null == undefined;
"NaN" == NaN;
5 == NaN;
NaN == NaN;
NaN != NaN;
false == 0;
true == 1;
true == 2;
undefined == 0;
null == 0;
"5" == 5;
- 全等和不全等有什么区别。
- 说明以下代码的输出结果:
var result1 = ("55" != 55);
var result2 = ("55" !== 55);
var result3 = (null == undefined);
var result4 = (null === undefined);
- 演示一下条件运算符怎么使用。
- 演示一下 =,+=,-=,/=,*=。
语句篇
- 写一个标准的if...else语句
- 写一个标准的if ...else if ...else...语句
- 写一个标准的do...while语句
- 说明以下代码的输出结果:
var i = 0;
do {
i += 2;
}while(i < 10);
alert(i);
- 写一个标准的while语句
- 说明以下代码的输出结果:
var i = 0;
while( i< 9) {
i+=2;
}
alert(i);
- 写一个标准的for语句。
- 写一个标准的for...in语句。
- 写一个标准的lable标签。
- break语句和continue语句有啥区别。
- 演示一下break和continue的使用。
- 演示一下label和break、continue的搭配使用。
- 演示一下with语句的使用。
- 严格模式下可以使用with语句吗?
- 写一个标准的switch case语句。
- switch case语句中break的作用是什么?
- switch case语句中可以不使用default吗?
函数篇
- 写一个简单的函数。
- arguments是什么,演示一下怎么使用。
- 获取函数中传入的参数的长度。
- arguments的值与之对应的命名参数的值是保持同步的,说明这两者是访问同一块内存空间,这样说对嘛?
- 说明以下代码的输出结果:
fun("AAA");
function fun( num1, num2){
console.log(num1);
console.log(num2);
arguments[1] = 10;
arguments[2] = 100;
console.log(arguments[1]);
console.log(arguments[2]);
console.log(num2);
}
- 为什么js中函数没有办法重载?
基本类型和引用类型篇
- 在js中,String是引用类型还是基础类型?
- 说明以下代码的输出结果:
var obj1 = new Object();
var obj2 = obj1;
obj1.name = "Nicholas";
alert(obj2.name);
- 说明以下代码的输出结果:
function setName(obj){
obj.name = "Nicholas";
}
var person = new Object();
setName(person);
alert(person.name);
- 说明以下代码的输出结果:
function setName(obj){
obj.name = "Nicholas";
obj = new Object();
obj.name = "Greg";
}
var person = new Object();
setName(person);
alert(person.name);
- 说明以下代码的输出结果:
var s = "Nicholas";
var b = true;
var i = 22;
var u;
var n = null;
var o = new Object();
alert(typeof s);
alert(typeof i);
alert(typeof b);
alert(typeof u);
alert(typeof n);
alert(typeof o);
- 解释以下代码:
alert(person instanceof Object);
alert(colors instanceof Array);
alert(pattern instanceof RegExp);
执行环境及作用域篇
- 说明以下代码的输出结果:
if (true) {
var color = "blue";
}
alert(color);
- 说明以下代码的输出结果:
for(var i=0;i<10;i++){
doSomething(i);
}
alert(i)
- 说明以下代码的输出结果:
function add(num1,num2) {
sum = num1 + num2;
return sum;
}
var result = add(10,20);
alert(sum);
- 什么事块级作用域?
- 说明以下代码的输出结果:
for (vat i = 0; i < 10; i++) {
doSomething(i);
}
alert(i);
if(true) {
var color = "blue";
}
alert(color);
- 怎样声明一个全局变量?
引用类型之Object类型篇
- 使用构造函数的方式来声明一个Object类型的变量
- 使用字面量标识法定义一个变量。
- 使用点表示法来访问对象中的属性。
- 使用方括号法来访问对象中的属性。
引用类型之Array类型
- 使用构造函数声明一个数组。
- 给数组一个默认的长度。
- 使用构造函数的方式给数组一个默认的值。
- 使用字面量的形式声明一个数组。
- 使用字面量的形式给数组设置默认值。
- 声明一个数组,[1,2,3,4,5,6];
- 修改第二项的值。
- 读取数组的长度。
- 把数组的长度设置为20;
- 使用2种方式检测一个变量是否是数组。
- 演示一下toString()和toLocalString()方法是怎么使用的。
- 声明一个对象数组people,存入两个对象person1和person2,复写每个对象中的toString()和toLoaclString()方法,调用toString()和toLocalString()查看结果。
- 根据上面这道题,复写valueOf()查看结果。
- 使用“*”这个符号来连接数组中所有的元素并且转化成字符串。
- 声明一个新的数组,从最后面推入2项。
- 取得这个数组的最后一项。
- 取出数组的第一项。
- 从数组的最前面推入两项。
- 反转数组。
- 对数组进行排序。
- 使用自定义比较器对数组进行排序。
- 声明一个数组,在这个数组后面添加新内容,返回新数组,不改变原数组内容。
- 取得数组中的第1个位置到最后一个位置的元素。
- 取得数组中的第1个位置到第4个位置的元素。
- 使用splice方法删除数组中的第一项。
- 使用splice方法在数组中第一个位置开始添加内容。
- 使用splice在数组第2个位置开始,删除3项,插入2项新内容。
- 先给一个数组,[1,2,3,4,5,4,3,2,1];分别完成:
- 从前开始查找数组中的“4”
- 从后开始查找数组中的“4”
- 从第4个位置开始向后查找数组中的“4”
- 从第4个位置开始向前查找数组中的“4”
- 现在给定一个数组[1,2,3,4,5,4,3,2,1];分别完成:
- 检查数组中的所有项书否都大于2;并且返回结果。
- 检查数组中是否存在任何一项大于2,;并且返回结果。
- 把数组中大于2的元素保存在一个新的数组之中。
- 把数组中所有的项都*2,返回新数组。
- 类似于传统的for循环,用什么方法可以代替这个for循环呢?
- 归并方法,Array中存在两个归并方法,请演示一下怎样使用这两个方法。(reduce,reduceRight)。例如把一个数组中所有的内容相加。
引用类型之Date类型
- 声明一个date类型的变量。
- 为2018年1月9号创建一个日期对象。
- 使用一下Date中的UTC方法和parse方法,这两个方法有什么异同?
- 取得当前时间。
- 待补充。。。日期组件的方法,,
引用类型之RegExp类型
- 全局模式的简写。
- 不区分大小写模式的简写。
- 多行模式的简写。
- 现有一个字符串,“cat,bat,lat”,分别完成以下操作:
- 匹配所有的“at”实例
- 匹配cat或bat,不区分大小写。
- 匹配所有以“at”结尾的三个字符的组合,不区分大小写。
- 匹配第一个“[bc]at”,不区分大小写。
- 匹配所有的“.at”,不区分大小写。
将以上字面量形式的正则表达式修改成字符串形式的(以构造函数的方式构建正则表达式)
使用字面量的形式和使用构建函数的方式有什么区别?
RegExp中存在哪些实例属性?说明一下。
exec方法和test方法有什么异同?
什么叫做捕获组?
分别演示一下这两个怎么使用?