专项练习16

目录

一、选择题

    1、用户在登陆某个账号时,通常是将账号名和密码分别输入到对应的文本框中,现要将账号名和密码连接起来作为用户的唯一标识符,怎样来实现这一功能(      )

    2、下列代码中,页面打开后能够弹出1的是?

二、编程题

    1、请补全JavaScript函数,要求以字符串的形式输出时间戳参数所对应的"年-月-日"。

    2、返回数字参数的整数部分


一、选择题

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

CSS中的行为——expression - 蓝色理想


二、编程题

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>

猜你喜欢

转载自blog.csdn.net/qq_51478745/article/details/131484883