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
方法的参数应该是一个数组。参数中的数组会拼接在原数组的后面,并作为一个新数组返回。 -
下面是一个拼接数组的例子,用
concat
把otherArray
拼接在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(' ');
-