(二)js基础。。。freecodecamp笔记
个人需要注意的点
-
当 JavaScript 中的变量被声明的时候,程序内部会给它一个初始值
undefined
。当你对一个值为undefined
的变量进行运算操作的时候,算出来的结果将会是NaN
,NaN
的意思是"Not a Number"。当你用一个值是undefined
的变量来做字符串拼接操作的时候,它会输出字符串"undefined"
。(变量默认初始值undfined,运算操作结果是NAN,字符串拼接结果是undfined) -
变量名称最佳实践驼峰命名法使用驼峰命名法来书写一个 Javascript 变量,在驼峰命名法中,变量名的第一个单词的首写字母小写,后面的单词的第一个字母大写。
-
特殊字符转义在 JavaScript 中,你可以通过在引号前面使用反斜杠(
\
)来转义引号。 -
单引号和双引号的功能在 JavaScript 中是相同的。
-
\'
单引号 \"
双引号 \\
反斜杠 \n
换行符 \r
回车符 \t
制表符 \b
退格 \f
换页符 -
在 JavaScript 中,
字符串
的值是 不可变的,myStr[0]="A"并不会使得myStr的第一个值变为A. -
js数组常用方法.push()存入一个数据,.pop()移出最后一个数据,.shift()移出第一个数据,.unshift()移入一个数据到头部
-
在函数没有
return
语句的情况下,当你调用它时,该函数会执行内部代码,返回的值是undefined
。 -
严格相等运算符(
===
)是相对相等操作符(==
)的另一种比较操作符。与相等操作符不同的是,它会同时比较元素的值和数据类型
。3===‘3’ false, 3==‘3’ true -
严格不相等运算符(
!==
)与全等运算符是相反的。严格相等运算符不会转换值的数据类型。3!==‘3’ true 3!=‘3’ false -
创建一个对象,两种取值方式
var ourDog = {
"name": "Camper",
"legs": 4,
"tails": 1,
"friends": ["everything!"]
};
//取出相应的属性
var a = ourDog.name
var b = ourDog["name"]
//像修改属性似的添加一个属性
myDog.break="woof"
//删除对象属性
delete myDog.tails;
//检查对象是否有该属性
myDog.hasOwnProperty("legs") //true
-
Math.random()
用来生成一个在0
(包括 0)到1
不包括 1)之间的随机小数,因此Math.random()
可能返回 0 但绝不会返回 1。 -
生成随机整数,
Math.floor
向下取整,结果为0-19Math.floor(Math.random() * 20);
生成某个范围的随机整数Math.floor(Math.random() * (max - min + 1)) + min
-
parseInt()
函数解析一个字符串返回一个整数 -
var a = parseInt("11", 2);
参数 2 表示 “11” 使用二进制数值系统。此示例将字符串 “11” 转换为整数 3。
-
嵌套三元运算符
num>0?"positive":num==0?"zero":"negative"
判断num是大于0等于0还是小于0
js中操作数组常用的三个方法()
1. filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
filter() 不会对空数组进行检测。 filter() 不会改变原始数组。
var ages = [32, 33, 16, 40];
function checkAdult(age) {
return age >= 18;
}
function myFunction() {
console.log(ages.filter(checkAdult));
}
//输出结果
32,33,40
ES6语法
var ages = [32, 33, 16, 40];
function myFunction() {
console.log(ages.filter((age)=>age>=18));
}
2. map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。map() 方法按照原始数组元素顺序依次处理元素。
map() 不会对空数组进行检测。map() 不会改变原始数组。
//返回一个数组,数组中元素为原始数组的平方根:
var numbers = [4, 9, 16, 25];
function myFunction() {
x = document.getElementById("demo")
x.innerHTML = numbers.map(Math.sqrt);
}
//输出结果
2,3,4,5
3. reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 对于空数组是不会执行回调函数的。
//计算元素相加后的总和
var numbers = [65, 44, 12, 4];
function getSum(total, num) {
return total + num;
}
function myFunction(item) {
console.log(numbers.reduce(getSum));
}
//输出结果
125
ES6语法
var numbers = [65, 44, 12, 4];
function myFunction(item) {
console.log(numbers.reduce((total,num)=>total+num));
}