个人学习笔记-JavaScript 初学

个人学习笔记-JavaScript 初学
0
  • 运算符号

=== 三个等号比较变量的值与类型是否相等 “1”==1(成立)1===“1”(不成立);
!==严格不等于运算符;


  • 对象访问

Object.hasOwnProperty(propname)方法来检查对象是否有该属性。
如果有返回 true ,反之返回 false

  1. Object[“val”] 适用于属性名称带有空格的
  2. Object[val] val取的是它里面的值eg:val=“name” 就等价于Object[“name”]
  3. Object.val
  4. 对象也可以这样定义,这个时候对象的访问就需要使用Object[val]/Object[“val”]
    eg:Object[1] result=“My” / Object[“1”] result=“My”
    var object={
    1:“My”,
    2:“Mine”,
    3:“Me”,
    }

  • 正则表达式

var expression = /\S/g; 全局匹配非空字符
var expression = /\S/g; 全局匹配非空单词
var expression = /\s/g; 全局匹配空字符
var expression = /My/g; 全局匹配My字符区分大小写
var expression = /My/gi; 全局匹配My字符不区分大小写
g 代表着 global (全局),意味着返回所有的匹配而不仅仅是第一个。
i 代表着忽略大小写,意思是当我们寻找匹配的字符串的时候忽略掉字母的大小写。

  • 数组
    map 方法可以方便的迭代数组:

var timesFour = oldArray.map(function(val){ return val * 4; });
const map1 = oldArray.map(x => x * 4);

var new_array = oldArray.map(function callback(currentValue[, index[, array]]) {
// Return element for new_array 
}[, thisArg])
var numbers = [1, 4, 9];
var roots = numbers.map(Math.sqrt);
// roots的值为[1, 2, 3], numbers的值仍为[1, 4, 9]

map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。function()的参数可以为多参
map使用详解:

reduce使用详解:
reduce 用来迭代一个数组,并且把它累积到一个值中

var singleVal = array.reduce(function(previousVal, currentVal) {
return previousVal - currentVal;}, 0);

 var maxCallback = ( acc, cur ) => Math.max( acc.x, cur.x );
 var maxCallback2 = ( max, cur ) => Math.max( max, cur );

// reduce() 没有初始值
[ { x: 22 }, { x: 42 } ].reduce( maxCallback ); // 42
[ { x: 22 }            ].reduce( maxCallback ); // { x: 22 }
[                      ].reduce( maxCallback ); // TypeError

// map/reduce; 这是更好的方案,即使传入空数组或更大数组也可正常执行
[ { x: 22 }, { x: 42 } ].map( el => el.x )
                      .reduce( maxCallback2, -Infinity );


Filter `使用详解:

 var oldArray = [1,2,3,4,5,6,7,8,9,10];
 // 只能在这一行下面写代码
 var test=(val)=>val<6;
 var newArray = oldArray.filter(test);//[1,2,3,4,5]

sort `使用详解:

var array = [1, 12, 21, 2];
var mySort=(a,b)=>b-a;//[21,12,2,1]
var mySort=(a,b)=>a-b;//[1,2,12,21]
array.sort(mySort);


合并数组

var oldArray = [1,2,3];
var newArray = [];
var concatMe = [4,5,6];
newArray = oldArray.concat(concatMe);//[1,2,3,4,5,6]

反转数组

var array = [1,2,3,4,5,6,7];
var newArray = [];
newArray = array.reverse();//[7,6,5,4,3,2,1]

算法学习
stringArray 的length排序/获取最大长度

function findLongestWord(str) {
  // 请把你的代码写在这里
  var mySort=(a,b)=>b.length-a.length;
 var strArray= str.split(' ');
  strArray.sort(mySort);
  var maxCallback = ( acc, cur ) => Math.max( acc.length, cur.length );
  var maxCallback2 = ( max, cur ) => Math.max( max, cur );
 var xx1= strArray.map( el => el.length ).reduce( maxCallback2, 0 );
  var xx= strArray.reduce(maxCallback);
  return xx1;
}
findLongestWord("The quick brown fox jumped over the lazy dog");

二维数组快速获取所有子数组中最大值

function largestOfFour(arr) {
  // 请把你的代码写在这里
  var myMax=(val)=>Math.max.apply(null, val);
 var max= arr.map(myMax);
//var max = Math.max.apply(null, arr[0]);
  return max;
}

largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
  Result:[5,27,39,1001]
3赞

咦,这个笔记是准备随时补充的吗?感觉还不完整呀 :joy:

建议可以取个名字,比如:JavaScript 初学?

谢谢

准备随时补充呢