为了账号安全,请及时绑定邮箱和手机立即绑定
慕课网数字资源数据库体验端
JavaScript进阶篇_学习笔记_慕课网
为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript进阶篇

慕课官方号 页面重构设计
难度入门
时长 8小时55分
  • onfocus 获得焦点

    查看全部
  • onmouseover

    onmouseout

    查看全部
  •    A              B              A||B 

    真true       真true        真true

    真true       假false       真true

    假false      真true        真true

    假false      假false       假false


    如果A为真,A||B为真,不会执行B;

    如果A为假,A||B的值,由B来决定。

    查看全部
  •   A                !A
    真true         假false
    假false         真true

    非真即假,非假即真

    查看全部
  • http://img1.sycdn.imooc.com//5dad29420001d45919201080.jpg该方法并不会修改数组,而是返回一个子数组

    查看全部
    0 采集 收起 来源:选定元素slice()

    2019-10-21

  • 注意:如果参数startPos是负数,从字符串的尾部开始算起的位置。也就是说,-1 指字符串中最后一个字符,-2 指倒数第二个字符,以此类推。

    如果startPos为负数且绝对值大于字符串长度,startPos为0。

    使用 substr() 从字符串中提取一些字符,代码如下:


    查看全部
  • table标签下回自动生成tbody标签包裹所有的tr 即<table>的子节点是<tbody>而非直接是<tr>
    查看全部
  • 原文链接:http://caibaojian.com/deep-in-javascript-this.html

    找出 this 的指向

    上一节我们已经对 this 做了测试。但是这块知识实在重要,我们需要再好好琢磨一下。在此之前,我想用下面的代码给你出个题:

    var name = "Jay Global"; var person = {     name: 'Jay Person',     details: {         name: 'Jay Details',         print: function() {             return this.name;         }     },     print: function() {         return this.name;     } }; console.log(person.details.print());  // ? console.log(person.print());          // ? var name1 = person.print; var name2 = person.details; console.log(name1()); // ? console.log(name2.print()) // ?

    console.log() 将会输出什么,把你的答案写下来。如果你还想不清楚,复习下上一节。·

    准备好了吗?放松心情,我们来看下面的答案。

    答案和解析

    person.details.print()

    首先,谁调用了 print 函数?在 JavaScript 中我们都是从左读到右。于是 this 指向 details 而不是 person。这是一个很重要的区别,如果你对这个感到陌生,那赶紧把它记下。

    print 作为 details 对象的一个 key,指向一个返回 this.name 的函数。既然我们已经找出 this 指向 details ,那函数的输出就应该是 'Jay Details'

    person.print()

    再来一次,找出 this 的指向。print() 是被 person 对象调用的,没错吧?

    在这种情况,person 里的 print 函数返回 this.namethis 现在指向 person 了,那 'Jay Person' 就是返回值。

    console.log(name1)

    这一题就有点狡猾了。在上一行有这样一句代码:

    //code from http://caibaojian.com/deep-in-javascript-this.html var name1 = person.print;

    如果你是通过这句来思考的,我不会怪你。很遗憾,这样去想是错的。要记住,this 关键词是在函数调用时才做绑定的。name1() 前面是什么?什么都没有。因此 this 关键词就将指向全局的 window 对象去。

    因此,答案是 'Jay Global'

    name2.print()

    看一下 name2 指向哪个对象,是 details 对象没错吧?

    所以下面这句会打印出什么呢?如果到目前为止的所有小点你都理解了,那这里稍微思考下你就自然有答案了。

    console.log(name2.print()) // ??

    答案是 'Jay Details',因为 printname2 调起的,而 name2 指向 details


    来源:前端开发博客


    查看全部
    0 采集 收起 来源:编程练习

    2019-10-20

  • scrollWidth:对象的实际内容的宽度,不包边线宽度,会随对象中内容超过可视区后而变大。 
    clientWidth:对象内容的可视区的宽度,不包滚动条等边线,会随对象显示大小的变化而改变。 
    offsetWidth:对象整体的实际宽度,包滚动条等边线,会随对象显示大小的变化而改变。

    情况1:

    元素内无内容或者内容不超过可视区,滚动不出现或不可用的情况下。

    scrollWidth=clientWidth,两者皆为内容可视区的宽度。

    offsetWidth为元素的实际宽度。

    http://img1.sycdn.imooc.com//592fe0a90001214b05340280.jpg

    情况2:

    元素的内容超过可视区,滚动条出现和可用的情况下。

    scrollWidth>clientWidth。

    scrollWidth为实际内容的宽度。

    clientWidth是内容可视区的宽度。

    offsetWidth是元素的实际宽度。

    http://img1.sycdn.imooc.com//592fe0b8000135d306160362.jpg


    查看全部
  • JavaScript中innerHTML与innerText,createTextNode的区别            

                           

    innerHTML和innerText

    它们都会把元素内内容替换掉,区别在于: innerHTML 会把替换内容里的 HTML 标记解释执行。 innerText 会把替换内容里的 HTML 标记原样输出而不执行。

    例如有如下代码:

    var content = "<b>这是对innerHTML和innerText的测试</b>" ; // 假设 e 为网页内某元素

    e.innerHTML = content ; // 显示结果为  这是对innerHTML和innerText的测试

    e.innerText = content ; // 显示结果为  <b>这是对innerHTML和innerText的测试</b>

     

    innerHTML和createTextNode

    innerHTML可以识别标签,而createTextNode会将内容全部转化为字符串

    例如有如下代码:

    var content = "<b>这是对innerHTML和innerText的测试</b>" ; // 假设 e 为网页内某元素

    e.innerHTML = content ; // 显示结果为  这是对innerHTML和innerText的测试

    var text=createTextNode(content) ;

    e.appendChild(text)// 显示结果为  <b>这是对innerHTML和innerText的测试</b>

     

    这样看来innerText和createTextNode的基本用法是一样的,都无法识别标签并转化为html文件。

    但是innerText是一次性修改,会将标签里所有内容修改,createTextNode可以逐条插入,避免整体的修改


    查看全部
  • 1. 返回的内容是从 start开始(包含start位置的字符)到 stop-1 处的所有字符,其长度为 stop 减start。

    2. 如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。

    3. 如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数


    查看全部
  • substring() 方法用于提取字符串中介于两个指定下标之间的字符。

    查看全部
  • 注意:如果把空字符串 ("") 用作 separator,那么 stringObject 中的每个字符之间都会被分割。

    查看全部
  • 1.字符串中第一个字符的下标是 0。最后一个字符的下标为字符串长度减一(string.length-1)。

    2.如果参数 index 不在 0 与 string.length-1 之间,该方法将返回一个空字符串。


    查看全部
  • charAt() 方法可返回指定位置的字符。返回的字符是长度为 1 的字符串

    查看全部

举报

0/150
提交
取消
课程须知
你需要具备HTML、css基础知识,建议同学们也可以想学习下js入门篇,快速认识js,熟悉js基本语法,更加快速入手进阶篇!
老师告诉你能学到什么?
通过JavaScript学习,掌握基本语法,制作简单交互式页面
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!