Javascript基礎
Javascript冒泡排序
原理
Demo
function score(arr){
for(var i=0;i<arr.length-1;i++){
for(var j=0;j<arr.length-i-1;j++){
if(arr[j]>arr[j+1]){
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
console.log(score([2,1,5,4]));
Javascript物件
創建
/*字面量創建物件*/
var obj = {
username:"hongjichao",
age:18,
sayHi:function(){
console.log("hi");
}
}
/*呼叫*/
obj.username;
obj[username];
obj.sayHi();
/*new Object() 創建物件*/
var obj1 = new Object();
obj1.username = "hongjichao";
obj1.age=18;
obj1.sayHi=function(){
console.log("hi");
}
/*呼叫*/
obj1.username;
obj1[username];
obj1.sayHi();
/*建構式創建物件 主要針對需要創建多個重復物件*/
function Obj2(name,age,sex){
this.name = name;
this.age = age;
this.sex = sex;
this.sing = function(){
console.log("changge");
}
}
/*實體化 創建物件*/
var hongjichao = new Obj2("hongjichao",18,"男");
/*呼叫*/
console.log(hongjichao.name);
console.log(hongjichao.sex);
hongjichao.sing();
/*遍歷物件*/
for (var k in hongjichao){
console.log(k); //輸出 物件的屬性名
console.log(hongjichao[k]); //輸出 物件的屬性值
}
內置物件
數學物件
// https://developer.mozilla.org/zh-CN/ 內置物件查詢檔案
//數學物件
Math.floor();//向下取整
Math.ceil();//向上取整
Math.random();//亂數
日期物件
//日期物件
/* 日期物件是建構式 必須先實體化 new*/
var date = new date();
console.log(date);
//日期方法
date.getFullYear(); //回傳當前年份
date.getMonth(); //回傳當前月數 月數從0開始 需要+1
date.getDate(); //回傳當前天數
date.getDay();//回傳當前周幾 從0開始
date.getHours();//回傳當前小時
date.getMinutes();//回傳當前分鐘
date.getSeconds();//回傳當前秒數
var arr = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"];
arr[date.getDay()]; //回傳 星期幾
date.valueOf();//回傳 距離1970.1.1 總的毫秒數,
//簡單寫法
var times = +new Date();
//不需要實體化也可以獲得總的毫秒數
console.log(Date.now());
//時間戳轉換公式
// 1秒===1000毫秒
d = parseInt(Date.now()/1000/60/60/24);
h = parseInt(Date.now()/1000/60/60%24);
m = parseInt(Date.now()/1000/60%60);
s = parseInt(Date.now()/1000%60);
陣列物件
//字面量創建陣列物件
var arr = [];
//陣列物件
var arr = new Array(); //空陣列
var arr1 = new Array(); //創建空陣列,長度為2,等于創建2個空的陣列元素
var arr2 = new Array(2,3); // 等價于出創建了 [2,3]陣列
//檢測是否為陣列
instanceof //運算子 可以用來檢測是否為陣列
console.log(arr instanceof Array);
Array.isArray("引數") //檢測是否為陣列
//添加洗掉陣列元素
push() //在陣列后面添加一個或者多個陣列元素 回傳值為陣列的新長度
unshift();//在陣列前面添加一個或多個陣列元素 回傳值為陣列的新長度
pop();//洗掉陣列最后一個元素,回傳洗掉的那個元素
shift();//洗掉陣列第一個元素,回傳洗掉的那個元素
var arr = [1,2,3];
arr.push(4,"hhh");
//篩選陣列
//把陣列中低于3的洗掉,剩余的放到一個陣列里面
var arr = [6,4,98,2,8,10];
var newarr = [];
for(var i=0;i<arr.length;i++){
if(arr[i]<8){
//給新陣列添加元素
newarr.push(arr[i]);
}
}
console.log(newarr);
//陣列排序
reverse(); //翻轉陣列 回傳新陣列
var arr = [1,2,3];
arr.reverse(); //輸出arr=[3,2,1]
sort();//陣列排序 回傳新陣列
var arr = [7,5,9,2];
arr.sort(function(a,b){
return a-b; //升序排列
return b-a; //降序排列
});
//陣列索引
indexOf(); // 回傳陣列元素索引號
var arr = ["red","blue","purple"];
arr.indexOf("blue"); //回傳索引號2 只回傳第一個滿足條件的索引號 找不到元素回傳-1
lastIndexOf(); //從后往前找到引數的索引號,找不到為-1
//陣列轉換為字串
toString(); //將陣列轉換為字串
join("分割符"); //添加分割符
var arr = [1,2,3];
arr.toString(); //結果 1,2,3
arr.join("-");//結果 1-2-3 陣列轉換為字串
//其他陣列轉化
concat(); //連接多個陣列/字串 回傳新的陣列/字串
slice("引數1","引數2");//資料截取 回傳被截取專案的新陣列/字串
splice("第幾個開始","要洗掉的個數");//回傳被洗掉的專案的新陣列/字串,會影響到原陣列/字串

陣列去重
//遍歷舊陣列,把舊陣列的資料去新陣列查詢,當新陣列沒有該資料就存到新陣列,用indexOf()和push()
function unique(arr){
var newarr = [];
for(var i=0;i<arr.length;i++){
if(newarr.indexOf(arr[i])){
newarr.push(arr[i]);
}
}
return newarr;
}
var demo = unique(["p","u","r","p","l","e"]);
console.log(demo);
字串物件
arr.toString(); //轉化字串
str.charAt(index);//根據位置回傳字符
str.charCodeAt(index);//根據位置回傳字符對應的ascii碼
str[index];//根據位置回傳字符 H5新增
var arr = "hong";
//簡單型別轉化為復雜型別
//等同于
var arr = new String("hong");
//字串不可變 不要大量拼接字串,占記憶體資源
//表面看起來變數的字串變了,實際是指向地址變了
//字串的所有方法,都是回傳新的字串,原先字串不可變,依舊存在;
str.concat(str1,str2....);//連接多個字串
str.substr(start,length);//從start位置開始(索引),length取的個數
str.slice(start,end);//從start位置截取到end位置,end取不到
str.substring(start,end)//從start位置截取到end位置,end取不到
str.replace("a","b");//替換字符 a被替換字符,b替換為的字符 只能替換第一個
str.split("分割符");//把 字串轉化為陣列
str.toUpperCase(); //轉換大寫
str.toLowerCase(); //轉換小寫
簡單型別與復雜型別
- 簡單資料型別:值型別 string、number、boolean、underfined
- 簡單資料型別:null 用typeof null 回傳一個空物件object
- 復雜資料型別:參考型別
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/273734.html
標籤:其他
