7.5 KiB
js 基础练习
-
写出三种种js引入方式并举例
- 外部引入
<script src="./main.js"></script>
- 内部引入
<script>alert("hello world)</script>
- 在dom元素上使用script
<button onclick="save()">提交</button>
- 外部引入
-
下面两段代码,说明js文件的加载顺序并解释原因 demo1:
<script async src="js/vendor/jquery.js"></script> <script async src="js/script2.js"></script> <script async src="js/script3.js"></script>
demo2
<script defer src="js/vendor/jquery.js"></script> <script defer src="js/script2.js"></script> <script defer src="js/script3.js"></script>
第一个(async 修饰的) 没法判断加载顺序
第二个(defer修饰的) 先加载 jquery.js 然后是 script2.js 最后是 script3.js -
如果浏览器不支持javascript的语法需要在页面上提示您的浏览器不支持javascript 运行 如何实现 在html 文件中写
<noscript>您的浏览器不支持javascript 运行</noscript>
-
列举几种js 交互方式 consol.log() document.write() alert() prompt() confirm()
-
js的组成 ECMAScript DOM BOM
-
JavaScript 如何与 HTML 和 CSS 协同工作 html(结构) css(样式) js(行为)
-
在外部文件中放置js脚本有什么优势
①简化HTML代码:将HTML代码中的JavaScript代码独立成外部文件,可以简化HTML文档中的代码,让HTML代码看起来更直观、清楚。
②编程模块化:可以将多个HTML文档中相同的JavaScript代码独立成外部文件,方便在多个HTML文档里引用。此时外部脚本文件相当于程序中的一个模块,如果修改该脚本文件的内容,所有引用该脚本文件的HTML文档中的部分也会被修改。
③代码易于维护:将JavaScript代码独立成外部文件,如果需要修改其中功能,只需要修改外部文件中的代码。如果所有JavaScript代码都嵌入HTML代码之中,那么即使要修改相同部分的内容,也必须修改所有HTML文件,修改的工作量较大。
④增加安全性:将JavaScript代码独立成外部文件,在查看HTML源代码时看不到JavaScript代码的内容,无形之中减少了受攻击的机会。
⑤加速浏览:浏览器会自动缓存网络中的文件。当一个外部脚本文件使用之后,浏览器会将其放入缓存中。如果另外一个HTML文档引用该外部脚本文件,浏览器就可以直接从缓存中读取该文件,而不需要从网络中下载,因此,会加快加载网页的速度。
⑥引用其他服务器上的文件的脚本文件:script元素中的src属性值是一个标准的URL,因此在HTML文档中除了可以引用当前服务器中的脚本文件,还可以引用其他服务器中的脚本文件。
主要是1,2,3
变量和常量
-
如何交换两个变量的值
-
字面量和变量的关系及区别 1.字面量是指由字母,数字等构成的字符串或者数值,它只能作为右值出现,(右值是指等号右边的值,如:int a=123这里的a为左值,123为右值。)
2.常量和变量都属于变量,只不过常量是赋过值后不能再改变的变量,而普通的变量可以再进行赋值操作。
-
变量命名规则
-
下面代码执行结果为 原因是
var obj1 = new Object(); var obj2 = obj1; obj1.name = "Nicholas"; alert(obj2.name);
结果是 Nicholas 原因(简单数据类型和复杂数据类型的区别) 1.内存的分配不同
基本数据类型存储在栈中 复杂数据类型存储在堆中,栈中存储的变量 是指向堆中的引用地址 2.访问机制不同 基本数据类型是按值访问 复杂数据类型是按引用访问 -
用一行语句声明5个变量 其中值包有一个只声明不赋值 其他分别为null 数值 字符串 布尔 数据类型
-
数据类型可以分为哪几类 有什么区别
-
如何实现功能 当浏览器不支持javascript脚本的时候 给用户在页面上提示“您的浏览器不支持javascript 脚本,请尽快升级浏览器”
-
typeof 检测数据类型的返回值都有什么 分别代表什么意思
-
类型转换相关
-
输入两个数字,点求和弹出两个数字相加的结果。
-
输入框的默认value进行相加,结果是进行了字符串相加,而非数字相加。
-
将value的值进行parseInt,之后再相加,就是数字相加的结果了。 如果输入12+abc,会是什么结果? 你得到了什么结论 3.isNaN,检测输入框的内容是不是NaN。true为真,false为假。 4.写出下面的执行结果 1 + '1' 11 true + 0 1 {}+[] 4 + {} 4 + [1] 'a' + + 'b' console.log ( [] == 0 ) console.log ( ! [] == 0 ) console.log ( [] == ! [] ) console.log ( [] == [] ) console.log({} == !{}) console.log({} == {})
-
定义一个变量存储数据1234,分别输出个位,十位,百位,千位数字
-
输入两个数字,相减四舍五入(.toFixed() 把保留几位小数写在括号里)
-
从弹框中输入一个字符,判断这个字符是否是英文字母,数字,汉字(4e00-9fa5)
-
下面代码的输出结果 console.log(10 + " cats"); console.log(10 * " cats"); Boolean([]) console.log(10 + "2"); console.log(10 - "2"); Number("3") console.log(10 / "2"); console.log(10 * "2"); String(false) console.log(10 * " 2"); console.log("10" * "2"); console.log(Object(undefined)); console.log(Object(null));
-
下面代码的执行结果 var str = "abc"; str[0] = "d";
console.log(str[1]="e"); console.log(str[0]); console.log(str); var num = [1,2,3]; num[0] = "a";
console.log(num);
-
下面代码的执行结果 var obj1 = {age: 22}; var obj2 = obj1;
console.log(obj1 === obj2); obj2.age = 18; console.log(obj1 === obj2);
-
解释10,11结果出现的原因 并归纳基本数据类型和引用数据类型的区别
-
下面代码的输出结果 var obj1 = {age: 22}; var obj2 = obj1; console.log(obj1 === obj2); obj2.age = 18; console.log(obj1 === obj2); console.log("1" instanceof String); console.log(("1").constructor === String); console.log((1).constructor === Number); console.log((true).constructor === Boolean); console.log(([]).constructor === Array); console.log((function() {}).constructor === Function); console.log(({}).constructor === Object); console.log(1 instanceof Number); console.log(true instanceof Boolean); console.log([] instanceof Array); console.log(function(){} instanceof Function); console.log({} instanceof Object); var test = Object.prototype.toString; console.log(test.call("str")); console.log(test.call(1)); console.log(test.call(true)); console.log(test.call(null)); console.log(test.call(undefined)); console.log(test.call([])); console.log(test.call(function() {})); console.log(test.call({}));
-
-