几个JavaScript的题目

1.
if (!("a" in window)) {
    var a = 1;

}
alert(a);
变量声明会提前,但是变量赋值不会提前,相当于:
var a;
if (!("a" in window)) {

    a = 1;
}
alert(a);
2.
function a(x) {
    return x * 2;
}
var a;

alert(typeof a);//function
变量声明不会覆盖同名的其他方法、变量,同样:
var x = 1;
var x;
alert(x);//1
3.
function b(x, y, a) {
    arguments[2] = 10;
    alert(a);
}
b(1, 2, 3);//10
function b(x, y, a) {
    arguments[2] = 10;
    alert(a);
}
b(1, 2);//undefined
function b(x, y, a) {
    arguments[2] = 10;
    alert(arguments[2]);
}
b(1, 2);//10
arguments和传入的参数共享时是2个不同的内存地址,使用JavaScript引擎来保证2个值是随时一样的,当然这也有一个前提,那就是这个索引值要小于你传入的参数个数。即如果你本来没有传入参数,那么给arguments中赋值也不会多声明一个传入的参数。



4.
function a() {
    alert(this);
}
a.call(null);//window
这个只是call的一个特性:如果第一个参数传入的对象调用者是null或者
undefined的话,call方法将把全局对象(也就是window)作为this的值。
### 关于JavaScript练习题和考试题目 #### 对象基本操作 对于希望加深理解JavaScript中对象基本概念的学习者来说,有如下几个练习可以帮助掌握创建、访问以及修改对象属性的方法: - **创建一个对象** 可以通过多种方式来定义一个新的对象。最简单的方式是利用字面量表示法[^1]。 ```javascript let person = { firstName: "John", lastName : "Doe" }; ``` #### 字符串处理函数 `search()` 方法能够用来定位特定子字符串首次出现的位置或者找到符合给定模式的任何位置。此功能基于正则表达式的强大能力实现[^2]。 ```javascript let text = "Visit W3Schools.com!"; let result = text.search(/W3Schools/i); console.log(result); // 输出索引号或 -1 表示未找到 ``` #### 文件扩展名校验 为了验证用户输入的内容是否是以`.js`或是`.html`结尾,可以通过调用`String.prototype.endsWith()`来进行简单的逻辑判断[^3]。 ```javascript var str = prompt('请输入文件路径'); if (str.endsWith('.js') || str.endsWith('.html')) { alert(true); } else { alert(false); } ``` #### DOM节点查询技术 当涉及到页面元素的选择时,提供了几种不同的API供开发者选用,比如依据ID、类名、标签名称甚至是CSS选择器来选取单个或多个DOM节点[^4]。 ```javascript // 获取单一元素 const elementById = document.getElementById('uniqueId'); // 获取一组具有相同类名的元素集合 const elementsByClass = document.getElementsByClassName('commonClassName'); // 使用querySelectorAll获得所有符合条件的对象列表 const allElementsMatchingSelector = document.querySelectorAll('.cssSelector, p'); ``` #### 函数参数分割统计 编写一段脚本接收一句话作为参数并计算其中单词的数量是一个不错的实践案例[^5]。 ```javascript function countWords(sentence) { let wordsArray = sentence.trim().split(/\s+/g); return wordsArray.length; } console.log(countWords("Hello, my name is John")); // 输出:5 console.log(countWords("how are you")); // 输出:3 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值