每日思考(2020/01/16)

题目概览

  • html和html5有什么区别?
  • 用CSS绘制一个三角形
  • 对this的理解

题目解答

html和html5有什么区别?

  • 文档声明区别:HTML是超文本标记语言,一种纯文本类型的语言。HTML5文档声明(<!DOCTYPE html>)方便书写,精简,有利于程序员快速的阅读和开发。
  • 结构语义区别:html没有体现结构语义化的标签,如:<div id="nav"></div>,html5添加了许多具有语义化的标签,如:<article>、<aside>、<audio>、<bdi>...
  • 拖放效果和绘图:HTML不允许拖放效果,无法绘制复杂图形,例:圆形,矩形,三角形等形状。HTML5允许拖放效果,允许绘制圆形,矩形,三角形等形状。
  • 频和视频的支持:HTML如果不使用Flash播放器支持,它不支持音频和视频。HTML5使用<audio><video>标签来支持音频和视频控制。
  • 存储数据:HTML使用cookie来存储临时数据。HTML5使用SQL数据库和应用程序缓存来存储脱机数据
  • 语法的处理:HTML无法处理不准确的语法;HTML5能够处理不准确的语法
  • 元素和属性:HTML中不存在charset,async和ping等属性;但charset,async和ping的属性是HTML 5的一部分。

    HTML5中有许多HTML元素已被修改或删除。

  • HTML5中添加了许多新元素,如:nav, audio, figcaption, progress, command, time, datalist, video, figure, meter, data, section, time, aside, canvas, summary, rp, rt, details, wbr, header, footer, keygen, embed, article, hgroup, bdi, mark, output, source, track, section, ruby 等等

用CSS绘制一个三角形

.triangle {
    width: 0;
    border-bottom: 35px solid lightgreen;
    border-left: 35px solid transparent;
}
.triangle:after {
    content: '';
    border: 35px solid transparent;
    border-bottom-color: lightgreen;
}

对this的理解

  • this的指向,是在函数被调用的时候确定的。也就是执行上下文被创建时确定的。在函数执行过程中,this一旦被确定,就不可更改了。

    var a = 10;
    var obj = {
      a: 20
    }
    
    function fn() {
      console.log(this.a);
    }
    
    fn(); // 10
    fn.call(obj); // 20
    function change() {
      this = obj; // 这句话试图修改this,运行后会报错
      console.log(this.a);
    }
    change();
  • 全局对象中的this:全局环境中的this,指向它本身
    // 通过this绑定到全局对象
    this.a2 = 20;
    
    // 通过声明绑定到变量对象,但在全局环境中,变量对象就是它自身
    var a1 = 10;
    
    // 仅仅只有赋值操作,标识符会隐式绑定到全局对象
    a3 = 30;
    
    // 输出结果会全部符合预期
    console.log(a1);
    console.log(a2);
    console.log(a3);
  • 函数中的this:在一个函数上下文中,this由调用者提供,由调用函数的方式来决定。
    • 如果调用者函数,被某一个对象所拥有,那么该函数在调用时,内部的this指向该对象。

      var a = 20;
      var obj = {
          a: 10,
          c: this.a,
          fn: function () {
              return this.a;
          }
      }
      console.log(obj.c); //undefined
      console.log(obj.fn());//10
    • 如果函数独立调用,那么该函数内部的this,则指向undefined。
      var a = 20;
      function fn() {
        console.log(this.a);
      }
      fn();//undefined
      var a = 20;
      function fn() {
          function foo() {
              console.log(this.a);
          }
          foo();
      }
      fn();//undefined
    • 但是在非严格模式中,当this指向undefined时,它会被自动指向全局对象
      // 为了能够准确判断,我们在函数内部使用严格模式,因为非严格模式会自动指向全局
      function fn() {
        'use strict';
        console.log(this);
      }
      
      fn();  // fn是调用者,独立调用
      window.fn();  // fn是调用者,被window所拥有
  • 使用call,apply显示指定this:它们的第一个参数都为this将要指向的对象
    function fn(num1, num2) {
      console.log(this.a + num1 + num2);
    }
    var obj = {
      a: 20
    }
    
    fn.call(obj, 100, 10); // 130
    fn.apply(obj, [20, 10]); // 50
  • 构造函数与原型方法上的this
    function Person(name, age) {
        this.name = name;
        this.age = age;
    }
    
    Person.prototype.getName = function() {
        return this.name;
    }
    var p1 = new Person('Nick', 20);
    p1.getName();
    /*当new操作符调用构造函数时,this其实指向的是这个新创建的对象,最后又将新的对象返回出来,被实例对象p1接收。因此,构造函数的this,指向了新的实例对象:p1。而原型方法上的this就好理解多了,p1.getName()中的getName为调用者,他被p1所拥有,因此getName中的this,也是指向了p1*/

原文地址:https://www.cnblogs.com/EricZLin/p/12203645.html

时间: 2024-10-09 17:40:06

每日思考(2020/01/16)的相关文章

人工智能行业每日必读(01&#183;16)

北京地铁正研究「刷脸」安检方案 1 月 16 日消息,北京市人大代表.北京市地铁运营有限公司党委书记.董事长谢正光透露,正在探索基于乘客信用的智慧安检模式,加强乘客信用体系建设,建立地铁『白名单』及快速安检通道制度.」据悉,目前,「刷脸」的快捷安检方案正在研究中,将在客流量较大的车站先行试点. 来源:http://www.egsea.com/news/detail?id=553902 云测数据荣登2019「ToB行业影响力·产品价值榜」 1月14日,2019 ToB行业影响力价值榜单重磅揭晓.云

[記事]2020/01 計畫

咕咕,產出文章真的好難 在此提醒 現在時間: 2020/01/11 12:50 2020 的第 1 個月已經過去快要一半啦 2020/01 月規劃 & 展望 邊做邊補充,希望 2 月來看可以打很多勾 3 FOCUS [ ] 最後一周的複習,堅持下去 [ ] 提高組 3 sessions [ ] 專注把其他小小.生活.細節處做好 Todo General [ ] 2019 檢討與檢視與整理 [ ] 2020 New Year resolutions Algos [ ] 線段樹入門 [ ] BIT

Bentley (ex. Microstran) Limcon 03.63.01.16 1CD钢结构设计分析软件

Bentley (ex. Microstran) Limcon 03.63.01.16 1CD钢结构设计分析软件Bentley AXSYS.Integrity V8i 08.11.09.52 1CDBentley AXSYS.Engine V8i 08.11.11.22 1CDBentley AXSYS Process V8i v08.11.11.32 1CD前端工程设计 (FEED) 系统Bentley (原. Microstran) Limcon 03.63.01.16 build 27/0

2020/01/10日报

日报内容详情: 日期:2020/01/10 前言: 今天洗漱完,本来是准备走路去上课的,但是走到外面一看,天气阴霾,下起了小雨,让人感觉是很不舒适,计划也赶不上变化啊,只好做公交去上课了.好了,不多说废话,开始今天的学习记录. 学习记录 上午: 开始的时候就下载了两个漏洞扫描软件,NESSUS和Acunetix,这两个软件都是开源的,Nessus使用的是vm镜像版的,这个软件安装时真的慢,感觉电脑都有点卡了,当然这应该是我电脑太破了,已经在暗示我换一台了. 终于安装好了,要开始使用操作了,因为我

每日思考(2020/01/04)

题目概览 对<meta>标签的理解 rgba()和opacity这两个的透明效果有什么区别? 为浏览器元素添加一个随机颜色的边框 在浏览器中输入url到页面显示出来的过程发生了什么 题目解答 对<meta>标签的理解 定义:元素可提供相关页面的元信息(meta-information),比如针对搜索引擎和更新频度的描述和关键词等等.标签位于文档的头部<head></head>标签内,不包含任何内容. 标签的属性定义了与文档相关联的[名称/值对]. HTML

每日思考(2020/01/19)

题目概览 HTML与XHTML二者有不同 写出主流浏览器内核私有属性的css前缀 手写一个幻灯片的效果 对XSS和CSRF的理解 题目解答 HTML与XHTML二者有不同 XHTML 元素必须被正确地嵌套 在 HTML 中,某些元素可以像这样彼此不正确地嵌套 <b><i>This text is bold and italic</b></i> 在 XHTML 中,所有的元素必须像这样彼此正确地嵌套 <b><i>This text is

每日思考(2020/01/02)

题目概览 对GBK和UTF-8的理解 对z-index的理解 bind.call.apply的区别? 题目解答 对GBK和UTF-8的理解 含义 GBK编码:是指中国的中文字符,其它它包含了简体中文与繁体中文字符,另外还有一种字符"gb2312",这种字符仅能存储简体中文字符 UTF-8编码:它是一种全国家通过的一种编码,如果你的网站涉及到多个国家的语言,那么建议你选择UTF-8编码 区别 UTF8编码格式很强大,支持所有国家的语言,正是因为它的强大,才会导致它占用的空间大小要比GBK

每日思考(2020/01/03)

题目概览 对影子(Shadow)DOM的了解 怎样修改自动填充表单的黄色背景? 对arguments的理解 题目解答 对影子(Shadow)DOM的了解 概念:是浏览器的一种能力,它允许在浏览器渲染文档(document)的时候向其中的 Dom 结构中插入一棵 DOM 元素子树,但是特殊的是,这棵子树(shadow-dom)并不在主 DOM 树中.可以想象成我们在 Vue 或者 React 中使用的一个个组件,是一种将 HTML 结构.Style 封装起来的结构. <!--> 浏览器开发者设置

每日思考(2020/01/13)

题目概览 对无障碍web(WAI)的理解 请描述css的权重计算规则 写一个获取数组的最大值.最小值的方法 题目解答 对无障碍web(WAI)的理解 含义:"Accessibility",在 Web 发展的初期,习惯把它翻译成"无障碍",因为它主要考虑如何让残障人士更容易地访问 Web 内容.诸如有行动障碍的人难以完成需要用鼠标进行的精确手部动作,他们更多的需要靠键盘:有视觉障碍的人(低视力.色盲.失明)需要使用屏幕放大镜(物理放大镜.网页的缩放功能.网页设置大字体