FCC_note

  • 点操作符: 静态的。右侧必须是一个以属性名称命名的简单标识符。属性名用一个标识符来表示。标识符必须直接出现再js程序中,

  • 中括号操作符: 动态的。方括号里必须是一个计算结果为字符串的表达式,属性名通过字符串表示。字符串是js的数据类型,

    • 用点的时候,后面需要是一个指定的属性名称,
    • 用中括号的时候 ,括号里面可以是变量或者字符串,
    • 所以用点的时候后面一定要是一个指定的 属性名,用[]时候后面一定是一个变量或者固定属性名的字符串。
      • 可以用数字作为属性名,而点语法不可以;
      • 可以用变量作为属性名或访问,而点方法不可以;
      • 可以动态访问的属性名,可以在程序运行时创建和修改属性,点操作符就不行
      • 如果属性名中包含会导致语法错误的字符,或者属性名是关键字或者保留字,也可以使用方括号表示法。
  • https://www.cnblogs.com/ljt1412451704/p/8683158.html
    
  • 通过为图片添加 .img-responsive 类可以让图片支持响应式布局。

    • 其实质是为图片设置了 max-width: 100%;height: auto;display: block; 属性,从而让图片在其父元素中更好的缩放。
  • .form-control

    • 如果需要在表单中将一行纯文本和 label 元素放置于同一行,为 <p> 元素添加 .form-control-static 类即可。
    • 这个类 就是让表单文本框元素具有一定的样式
  • .container 类用于固定宽度并支持响应式布局的容器。

  • .container-fluid 类用于 100% 宽度,占据全部视口(viewport)的容器。 移动端时候可使用

  • Bootstrap 有一个 class 属性叫做 well,它的作用是为设定的列创造出一种视觉上的深度感(一种视觉上的效果,动手写代码体会一下)。 没啥作用....

  • jQuery有一个.prop()的方法让你来调整元素的属性.

  • jQuery有一个appendTo()方法可以把选中的元素加到其他元素中。

  • jQuery的clone()方法可以拷贝元素。

    • $("#target2").clone().appendTo("#right-well"); 
      
  • jQuery有一个方法叫parent(),它允许你访问指定元素的父元素。

  • jQuery 用CSS选择器来选取元素,target:nth-child(n) CSS选择器允许你按照索引顺序(从1开始)选择目标元素的所有子元素。

  • jQuery里的索引是从0开始的,也就是说::odd 选择第2、4、6个元素,因为target#2(索引为1),target#4(索引为3),target6(索引为5。

  • 第二种访问对象的方式就是中括号操作符([]),如果你想访问的属性的名称有一个空格,这时你只能使用中括号操作符([])。

    • 提示:属性名称中如果有空格,必须把属性名称用单引号或双引号包裹起来。
    • 中括号操作符的另一个使用方式是用变量来访问一个属性。当你需要遍历对象的属性列表或查表时,这种方式极为有用。
  • 我们通过变量名访问属性的时候,不需要给变量名包裹引号。因为实际上我们使用的是变量的值,而不是变量的名称。

    var myDog = "Hunter";
    var dogs = {
      Fido: "Mutt",
      Hunter: "Doberman",
      Snoopie: "Beagle"
    }
    var breed = dogs[myDog]; 
    console.log(breed)// "Doberman"
    
  • 给对象添加属性。

    • ourDog.bark = "bow-wow";
    • ourDog["bark"] = "bow-wow";
  • 同样可以删除对象的属性

    • delete ourDog.bark; delete 这条属性可以进行删除
  • 有时检查一个对象属性是否存在是非常有用的,我们可以用.hasOwnProperty(propname)方法来检查对象是否有该属性。如果有返回true,反之返回 false

  • 通过串联起来的点操作符或中括号操作符来访问JSON对象的嵌套属性。

    var item = "sasd";
    
    console.log(typeof item)      //string
    if(item) {
        console.log('就会执行')
    } else {
        console.log('就不会执行')
    }     //就会执行
    
  • 如果你有一个二维数组,可以使用相同的逻辑,先遍历外面的数组,再遍历里面的子数组。下面是一个例子:

    var arr = [
      [1,2], [3,4], [5,6]
    ];
    for (var i=0; i < arr.length; i++) {
      for (var j=0; j < arr[i].length; j++) {
        console.log(arr[i][j]);
      }
    }
    
  • Math.floor() 向下取整 获得它最近的整数。

  • 记住 Math.random() 永远不会返回 1。同时因为我们是在用 Math.floor() 向下取整

  • Math.floor(Math.random() * (max - min + 1)) + min

    • 返回一个在myMin(包括myMin)和myMax(包括myMax)之间的随机数。
  • 我们可以把这个正则表达式分成几段: /the/gi

    • / 是这个正则表达式的头部
    • the 是我们想要匹配的模式
    • / 是这个正则表达式的尾部
    • g 代表着 global(全局),意味着返回所有的匹配而不仅仅是第一个。
    • i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。
  • match

  • 特殊选择器中的一种就是数字选择器\d,意思是被用来获取一个字符串的数字。

    • 在JavaScript中, 数字选择器类似于: /\d/g

      在选择器后面添加一个加号标记(+),例如:/\d+/g,它允许这个正则表达式匹配一个或更多数字。

      尾部的g是'global'的简写,意思是允许这个正则表达式 找到所有的匹配而不是仅仅找到第一个匹配。

  • 我们也可以使用正则表达式选择器 \s 来选择一个字符串中的空白。

    • 空白字符有 " " (空格符)、\r (回车符)、\n (换行符)、\t (制表符) 和 \f(换页符)。
    • 空白正则表达式类似于: /\s+/g
  • 举个例子:\s 匹配任何空白字符,\S 匹配任何非空白字符。

  • 使用构造函数时,我们通过在它前面使用 new 关键字 来对它进行调用,如下:

    var myCar = new Car();
    
    • myCar 现在成为了 Car 的一个 实例(instance),它被 构造函数 描述成下面的样子:

      {
        wheels: 4,
        engines: 1,
        seats: 1
      }
      
    • 记住:要使用 new 关键字 去调用构造函数。因为只有这样,

    • Javascript才知道这是要去构造一个新 对象 ,并且把构造函数中的 this 指向这个新对象。

      myCar.turboType = "twin";

      我们的 myCar 变量现在有了一个 turboType 属性了,且值为 "twin"

  • 对象拥有自己的特征,称为 属性,对象还有自己的函数,称为 方法

  • map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。

  • 数组方法 reduce 用来迭代一个数组,并且把它累积到一个值中。
    • 使用 reduce 方法时,你要传入一个回调函数,这个回调函数的参数是一个 累加器 (比如例子中的 previousVal) 和当前值 (currentVal)。

    • reduce 方法有一个可选的第二参数,它可以被用来设置累加器的初始值。如果没有在这定义初始值,那么初始值将变成数组中的第一项,而 currentVal 将从数组的第二项开始。

    • var array = [4,5,6,7,8];
      var singleVal = 0;
      
      // 只能在这一行下面写代码
      
      var singleVal = array.reduce(function(previousVal,currentVal) {
        return previousVal + currentVal;
      });
      // 30
      

      使用 reduce 方法来让 array 中的所有值相加,并且把结果赋值给 singleVal

  • filter 方法用来迭代一个数组,并且按给出的条件过滤出符合的元素。

    • filter 方法传入一个回调函数,这个回调函数会携带一个参数,参数为当前迭代的项(我们叫它 val )。

      回调函数返回 true 的项会保留在数组中,返回 false 的项会被过滤出数组。

      var oldArray = [1,2,3,4,5,6,7,8,9,10];
      
      

    // 只能在这一行下面写代码

    var newArray = oldArray.filter(function(val) {
    return val < 6;
    }); // 1 2 3 4 5

    
    
    
    
  • 使用 sort 方法,你可以很容易的按字母顺序或数字顺序对数组中的元素进行排序。

    • 与我们之前用的数组方法仅仅返回一个新数组不同, sort 方法将改变原数组,返回被排序后的数组。

      sort 可以把比较函数作为参数传入。比较函数有返回值,当 a 小于 b,返回一个负数;当 a 大于 b ,返回一个正数;相等时返回0。

      如果没有传入比较函数,它将把值全部转成字符串,并按照字母顺序进行排序。

  • 你可以使用 reverse 方法来翻转数组。

    var myArray = [1, 2, 3];
    myArray.reverse();
    
    • 结果myArray 变成了 [3, 2, 1]
  • concat 方法可以用来把两个数组的内容合并到一个数组中。

    • concat 方法的参数应该是一个数组。参数中的数组会拼接在原数组的后面,并作为一个新数组返回。

    • 下面是一个拼接数组的例子,用concatotherArray 拼接在 oldArray的后面:

      newArray = oldArray.concat(otherArray);
      
    • 使用 .concat()concatMe 拼接到 oldArray 后面,并且赋值给 newArray

      var oldArray = [1,2,3];
      var newArray = [];
      
      var concatMe = [4,5,6];
      
      // 只能在这一行下面写代码
      
      newArray = oldArray.concat(concatMe);
      
  • 你可以使用 split 方法按指定分隔符将字符串分割为数组。

    • 你要给 split 方法传递一个参数,这个参数将会作为一个分隔符。

    • 下面的例子展示了 split 方法的使用,按照 s 字母进行分割:

      var array = string.split('s');
      // 使用 split 方法来把字符串 string 分割为数组 array。
      
    • 使用 split 方法来把字符串 string 分割为数组 array

      var string = "Split me into an array";
      var array = [];
      // 只能在这一行下面写代码
      array = string.split(" ");
      
  • 我们还可以使用 join 方法来把数组转换成字符串,里面的每一个元素可以用你指定的连接符来连接起来,这个连接符就是你要传入的参数。

    • join 来将数组中的每一项放入字符串,并用 and进行连接:
    var veggies = ["Celery", "Radish", "Carrot", "Potato"];
    var salad = veggies.join(" and ");
    console.log(salad); // "Celery and Radish and Carrot and Potato" 
    
    • 使用 join 方法,连接符为' '把数组 joinMe 转化成字符串 joinedString.
    var joinMe = ["Split","me","into","an","array"];
    var joinedString = '';
    
    // 只能在这一行下面写代码
    
    var joinedString = joinMe.join(' ');
    
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,837评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,551评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,417评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,448评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,524评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,554评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,569评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,316评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,766评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,077评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,240评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,912评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,560评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,176评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,425评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,114评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,114评论 2 352