目录
1、用户在登陆某个账号时,通常是将账号名和密码分别输入到对应的文本框中,现要将账号名和密码连接起来作为用户的唯一标识符,怎样来实现这一功能( )
1、请补全JavaScript函数,要求以字符串的形式输出时间戳参数所对应的"年-月-日"。
一、选择题
1、用户在登陆某个账号时,通常是将账号名和密码分别输入到对应的文本框中,现要将账号名和密码连接起来作为用户的唯一标识符,怎样来实现这一功能( )
A、userName.concat(pwd);
B、userName.append(pwd);
C、userName.appendTo(pwd);
D、userName.pop(pwd);
正确答案:A 你的答案:B
解析:
(1)选项解释
A选项:concat() 方法用于连接两个或多个数组、字符串,该方法不会改变原来的数组、字符串,仅会返回被连接数组、字符串的一个副本
B选项:append() 方法在被选元素的结尾(仍然在内部)插入指定内容。append() 功能是向指定的元素中追加内容,被追加的content参数,可以是字符、HTML元素标记,还可以是一个返回字符串内容的函数
C选项:appendTo() 方法在被选元素的结尾(仍然在内部)插入指定内容
D选项:pop() 方法用于删除并返回数组的最后一个元素
(2)append和appendTo的区别
①append()前面是要选择的对象,后面是要在对象内插入的元素内容
②appendTo()前面是要插入的元素内容且为Jquery对象,而后面是要选择的对象
③也就是前者把content放在参数中,后者把content作为对象,但是这两个方法都是针对jquery对象,而不是数组/字符串
2、下列代码中,页面打开后能够弹出1的是?
A、<iframe src=”javascript: alert(1)”></iframe>
B、<img src=”” οnerrοr=”alert(1)”/>
C、IE下<s style=”top:expression(alert(1))”></s>
D、<div οnclick=”alert(1)”></div>
正确答案:ABC 你的答案:ACD
解析:
(1)选项解释
A 加载页面的时候触发
B onerror 事件当图片不存在时触发
C 在 ie7 下会连续弹出, IE5及其以后版本支持在CSS中使用expression,用来把CSS属性和Javascript表达式关联起来,这里的CSS属性可以是元素固有的属性,也可以是自定义属性,就是说CSS属性后面可以是一段Javascript表达式,CSS属性的值等于Javascript表达式计算的结果,在表达式中可以直接引用元素自身的属性和方法,也可以使用其他浏览器对象,这个表达式就好像是在这个元素的一个成员函数中一样
D div里没有内容,盒子的宽度为0所以点击不了的;
(2)拓展:常见的 xss 攻击方式
- <script>alert('XSS')</script>:最普通的 XSS
- <script>alert(document.cookie)</script>:获取 cookie
- <img src ="javascript:alert('XSS')">:img 链接地址 xss
- <script src='ls.js'></script>:外部攻击代码
- <script>alert/*注释*/('XSS')</script>:注释方法防止过滤
- <img src = ' ' οnerrοr=alert('XSS')>:加载图像失败执行
- <iframe onload = alert('XSS')>:框架
- <script>location = 'baidu.com';</script>:跳转某页面
- <a href ="javascript:alert('XSS')"></a>:a 链接的 xss
- body{bockground-image:url(javascript:alert('XSS'))}:在 css 样式中加入
(3)参考材料
Window: error event - Web API 接口参考 | MDN
二、编程题
1、请补全JavaScript函数,要求以字符串的形式输出时间戳参数所对应的"年-月-日"。
示例:_date(1631159776311) -> '2021-9-9'
解析:
(1)``模板字符串
<script>
let number = 1631159776311
function _date(number){
let date = new Date(number)
return `${date.getFullYear()}-${date.getMonth()+1}-${date.getDate()}`
}
console.log(_date(number));
</script>
(2)字符串拼接
<script>
let number = 1631159776311
function _date(number){
let date = new Date(number)
return date.getFullYear() + '-' + (date.getMonth()+1) + '-' +date.getDate()
}
console.log(_date(number));
</script>
2、返回数字参数的整数部分
解析:
(1)parseInt()
<script>
let value = 163.245
function _int(value){
return parseInt(value)
}
console.log(_int(value));
</script>
(2)Math.floor()
<script>
let value = 163.245
function _int(value){
return Math.floor(value)
}
console.log(_int(value));
</script>
(3)~ 是按位取反运算符,两个 ~ 就是按位取反后再取反,相当于 Math.floor(),效率会要高一点
<script>
let value = 163.245
function _int(value){
return ~~value
}
console.log(_int(value));
</script>