• 每日刷题4


    1. console.log(1+'2')和console.log(1-'2')的打印结果

    结果为12和-1。所考知识点,字符串转数字,用字符串做除了加法之外的四则运算,(-0,*1,/1)

    二、js跨域产生的原因。并列举几种解决跨域问题的方式,并说明原理

    cross-origin交叉源错误

    1. 跨域问题产生的原因是js有一个“同源策略”的规则规定,同源下的文件可以可以相互通信,非同源下不可以,如果非要通讯,js就会报错--“跨域错误”
    2. 解决跨域问题的方式
      1. jsonp,script标签是不受同源策略影响的,他可以引入来自任何地方的js文件。动态添加script  
      2. 使用window.name来进行跨域。window对象有name属性,该属性有个特点:即在一个窗口(window)的生命周期内,窗口载入的所有页面都是共享一个window.name的,每个,每个页面对window.name都有读写的权限,window.name是持久存在一个窗口载入过的所有页面中的,并不会因新页面的载入而进行重置。
      3. 使用HTML5中新引进的window.postMessage方法来跨域传送数据
        window.postMessage(message,targetOrigin) 方法是html5新引进的特性,可以使用它来向其它的window对象发送消息,无论这个window对象是属于同源或不同源,目前IE8+、FireFox、Chrome、Opera等浏览器都已经支持window.postMessage方法

    为什么要同源限制

    同源策略指的是:协议,域名,端口相同,同源策略是一种安全协议
    举例说明:比如一个黑客程序,他利用Iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。

    三、offsetWidth/offsetHeight,clientWidth/clientHeight与scrollWidth/scrollHeight的区别

    考点dom获取元素的尺寸和位置

    1. 内尺寸
      * clientWidth=width+左右padding
      * clientHeight=width+上下padding

    2. 外尺寸
      offsetWidth=width+左右padding+左右border
      offsetHeight=height+上下padding+上下border

    3. 滚动尺寸
      scrollWidth:真实的可滚动元素里面可视内容的总宽度大小
      scrollHeight:真实的可滚动元素里面可视内容的总高度大小

    扩展延伸

    1. 内位置
      * clientLeft:元素左padding的外边缘距离自身左border的外边缘之间的距离(border-left-width)
      * clientTop元素上padding的外边缘距离自身左border的外边缘之间的距离(border-top-width)

    2. 外位置
      * offsetLeft:元素的左边框的外边缘距离离他最近的,设置了非static定位的祖先元素的左边框的内边缘
      * offsetTop元素的上边框的外边缘距离离他最近的,设置了非static定位的祖先元素的上边框的内边缘

    3. 滚动位置
      scrollLeft
      scrollTop

    4. 以上所有的属性,只有scrollLeft和scrollTop是读写性的,其余的全是只读。

    四、常见的兼容性问题

    1. 浏览器默认的margin和padding不同。解决方案是加一个全局的*{margin:0;padding:0;}来统一,,但是全局效率很低,一般是如下这样解决:
    2. Firefox下,event对象有pageX,pageY属性,但是没有x,y属性。旧版的IE下,event对象有x,y属性,但是没有pageX,pageY属性

    五、什么是闭包

    勤学似春起之苗,不见其增,日有所长; 辍学如磨刀之石,不见其损,日所有亏!
  • 相关阅读:
    Transaction And Lock--使用资源锁来控制并发
    曲演杂坛--页拆分
    维护建议--文件和文件组
    维护建议--开发设计
    维护建议--服务器磁盘
    维护建议--数据库备份
    TSQL--查找连续登陆用户
    shell脚本传递带有空格的参数的解决方法
    oozie无法识别hadoopHA中的ns1
    ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
  • 原文地址:https://www.cnblogs.com/qiaozhiming123/p/14606008.html
Copyright © 2020-2023  润新知