首頁  >  文章  >  web前端  >  Java Script中值得收藏的學習筆記(總結分享)

Java Script中值得收藏的學習筆記(總結分享)

WBOY
WBOY轉載
2021-10-12 11:21:182319瀏覽

今天為大家帶來了值得收藏的JavaScript初級學習筆記,含有很多小知識,趕快碼住看一看吧!

Java Script中值得收藏的學習筆記(總結分享)

什麼是JavaScript?

JavaScript是一種執行在客戶端的腳本語言


#基本輸入輸出語句

功能 語句
#列印輸出 console.log()
彈出輸出方塊 alert
彈出輸入方塊 prompt
檔案寫入 document.write('')
  • #小理論:
    console.log可以輸出任何類型的數據,alert只能輸出String類型的數據,只能輸出第一個數據,如果alert輸出的是物件會自動呼叫toString()方法。

變數

宣告變數var (name)

  • 一些注意事項
    • 一次宣告多個變數的時候必須用逗號隔開,而且必須換行,寫在同一行的多個宣告變數會無效。

    • 未初始化的變數直接輸出結果是undfined

    • #變數的命名規格: 字母數字下劃線美元符號(不以數字開頭)

    • 變數初始化中,單引號和雙引號沒有區別


資料型別

JavaScipt是​​一種> 動態/弱型別語言

##

js的變數資料型別是只有程式在運行過程中,根據等號右邊的值來決定的,也稱為動態資料型別

常用語句:

IsNAN() //判断值是否为非数字
//转义符: \n换行 \t缩进 \b空格
str.length  //获取字符串长度

小理論

  • undefined和數字相加,結果是NaN

  • null 1等於1

  • prompt取過來的值是字元型。

#對於prompt取值做加法,有以下加法案例:

//demo onevar a,
	b
	;a = parseInt(prompt('请输入第一个值'));
	b = parseInt(prompt('请输入第二个值'));
	var c = a + b;
	alert (c);
	//demo two
	var a = prompt('请输入第一个值');
	var b = prompt('请输入第二个值');
	var c = Number(a) + Number(b);
	alert (c);

#字串轉換(chrom顏色為黑)

  • 變數.toString()
  • String()強制轉換
  • 隱含轉換: 拼接
  • 字串範本拼接我的年齡是${age}歲 (注意反引號不要掉了)

#數字型轉換(chrom顏色為藍色)

  • Parselnt()轉換為整數型
  • parseFloat()轉換為浮點型
  • Number ()強制轉換函數
  • 隱含轉換:- * / 算術運算隱含轉換

布林型轉換(chrom顏色為藍色)

  • 空、否定會轉換成false:如''、 0 、 NaN 、 null 、 undefined
    其餘全部為true

#運算子

==預設轉換數字類型,會把字元型轉換成數字型
===全等, 要求數值和資料型別都一樣

優先:

  • 括號

  • #單目(右結合右到左)

  • #算數*/%

  • 位移

  • #關係

  • ##相等

  • 邏輯&^| &&||

  • 賦值

逗號

  • ##選擇語句

  • if沒什麼好說的
switch注意事項:
case的值判斷是

全等運算
判斷


  • 陣列


#建立陣列的方式

1.利用new建立陣列


var arr = new Array() //注意的是,new A必须大写
var arr = new Array(2); //表示数据长度2
var arr = new Array(2, 3); //表示里面有两个元素是2和3
2.利用字面量建立陣列


var arr = [];
3.取得陣列的長度

arr.length
    也可透過arr.length = (Number)的方式來修改陣列長度


  • 注意點:

多餘的位址/空位址/未定義陣列元素預設值為undefined

拿C語言舉例,字元數組預設後面都是有一個\0結束的,而下標越界會導致程式錯誤,JS這樣設定的好處就是可以不定義數組長度,或者預先給到位址空間。

4.實現陣列遷移,因此不需要定義索引/下標變數

newArry[new.Arry.length] = arr[i++];

陣列的常用內建物件

1.判斷陣列

// var arr = [];
arr instanceof Array //Instanceof运算符判断是否为数组
Array.isArray(arr)  //isArray判断是否为数组
# 2.新增數組元素

arr.push() //在数组最后添加一个或多个数组元素
arr.unshift() //在数组最前面添加一个或多个数组元素

實用:push可以實作給新的空數組賦值,且push和unshift都有回傳值,為新數組的length

# 3.刪除數組元素

arr.pop()  //删除数组中最后一个元素
arr.shift()  //删除数组中第一个元素

有傳回值,為刪除的元素值

#4.翻轉/逆置數組

arr.reverse()
5.數組排序

arr.sort() //对个位数进行冒泡排序
理論:為什麼說是對個位數進行冒泡排序,因為sort比較數組會先把數組轉換成字串,所以77會比8更先,但是如果有了比較函數( compareFunction)的指定,就能實現依要求排列


arr.sort解決方案

arr.sort(function(a,b)) {
	return a - b;
	//return b - a

a - b為升序排序,b - a為降序排序
6.找出陣列

arr.indexOf('word');

從前往後找出傳回陣列滿足條件第一個元素的索引號,如果找不到則回傳- 1

arr.lastIndexOf('word');

從後往前

尋找傳回數組滿足條件第一個元素的索引號,如果找不到則傳回-1
7.轉換成字串

arr.toString() //数组转换成字符串
arr.join() //将数组转换成字符串,且括号内可以写分隔符,表示用什么符号格式进行分隔 arr.join('&')

Arguments 偽數組只有在函數中能夠使用

同樣按照下標的方式儲存數據,可以不定義長度實作形參接收

  • 函數

  • #宣告函數:

  • Function 函數名稱() { }

  • var 變數名稱= Function () { } 函數表達式(匿名函數)

  • #預先解析

  • 就是把JS中所有的var和function提到目前作用域的最前面

  • 變數預先解析
    提前所有的變數宣告(不提賦值運算)

    ######函數預解析### 提前所有的函數宣告(不呼叫函數)### → 所以要額外注意函數表達式和宣告函數的預解析###

理论:

  • 如果形参多于实参,按前取;如果有实参没有被传值,默认是undefined
  • Return返回一个值,但是如果return[ ] 且有多个表达式以逗号隔开,那返回值会是整个[]的 所有 运算结果
  • !!如果函数没有返回值,那么返回的是undefined !!
  • 在函数内部直接赋值的变量属于全局变量
  • 函数的形参是局部变量
  • 块级作用域: {} (es6新增,其他版本在括号里面定
    义的变量也能在外面调用
  • 作用域链:多个函数嵌套的时候会形成作用域链,子函数能访问父函数的块作用域

对象

  • 什么是对象?
    对象是一组无序的相关属性和方法的集合(字符串,数值,数组,函数)
    在其他语言中,类似 >结构体 >字典

创建自定义对象和对象属性、对象方法:

  1. 字面量创建
var obj = {
	name:'姓名',
	age : 999,
	//*方法*冒号后跟一个*匿名函数*
	printf:function() {
		console.log('hello world');
	}
	}

记忆方法↓:

  • 直接给对象名、属性冒号跟值+语句结束逗号
  • 方法用冒号
  • 取值:对象名.属性名 or 对象名[‘属性名’]
  • 调用对象方法: 对象名.方法名();
  1. new object
var obj = new Object();
obj.name = '李昂';
obj.age = 999;
obj.printf:function(){
	console.log('hello world');
	}

记忆方法↓:

  • var对象名 = new Object (); 不加分号
  • 对象名.属性 = 取值 + 分号
  • 方法用冒号
  • 取值:对象名.属性名 or 对象名[‘属性名’]
  • 调用对象方法: 对象名.方法名();

3.构造函数

function Obj (Uname, Uage) {
this.name = Uname;
this.age = Uage;
this.printf = function(infoms){
	console.log(infoms);
	}
	}

记忆方法↓:

  • 类似函数声明,但是构造函数函数名首字母必须大写,this.属性
  • 方法用等号
  • 构造函数必须得有变量传值,构造函数的方法也必须有变量传值
  • 调用构造函数 var 变量 = new 构造函数名(传递的值)
var myobj = new Obj('李昂', '999');//可以理解为创建了一个变量指定了构造函数
console.log(myobj.name);
console.log(myobj['age']);
obj.printf('hello world');

new的执行过程

  • new构造函数会在内存中创建一个空的对象

  • this就会指向刚才创建的对象

  • 接着依次执行属性、方法,并返回

新循环遍历

For (变量 in 对象){
}
这里的变量是属性值做遍历
属性的的输出:consolo.log(对象[变量]);
程序员在for in 的变量喜欢写Key或者i

一些可用内置对象:

Math.PI //求圆周率
Math.max()//返回最大数值(如果无值返回负无穷大)
Math.abc ()//取绝对值
Math.floor()//向下取整
Math.ceil()//向上取整
Math.round()//四舍五入(五特殊 往大了取)
  • 随机数
Math.random() ;
  • 返回一个随机浮点数【0,1)括号里不跟参数
    ↓ 扩展:得到自定义最大值和最小值中间的随机函数
Function getRandomInt(min, max) {
	min = Math.ceil(min); //规范值语句 可省
	max = Math.floor(max); //规范值语句 可省
	return = Math.floor(Math.random() * (max - min + 1) + min);
  • new Date()调用日期对象 不跟参数返回系统时间
  • (‘2021-10-10 8:00:00’)字符串输出

  • (2021, 10, 10)数字输出 月份从0开始11结束 故而要在月份的基础上+1

  • 变量.getDay()获取当前星期,星期日从0开始 到星期六6结束 获取到的值是一个数字
    ↓规范获取当前时间 demo
var date1 = new Date;
var year = date1.getFunllYear();
var month = date1.getMonth();
var dates = date1.getDate();
var day = date1.getDay();
var arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
alert('今天的日期是:' + year + '年' + (month+1) + '月' + dates + '日' + arr[day]);

==值得注意的是,必须使用变量调用Date这个构造函数

基本包装类型:

  • 就是把简单数据类型包装成复杂数据类型,这样基本数据类型就有了属性和方法,那么一般来说在浏览器里面JS引擎会自动帮我们把简单数据类型包装成复杂数据类型
var str = 'lion';
 console.log(str.length);
 //JS如何给我们的数据包装
 var temp = new String('lion');//定义一个临时构造函数包含初始化的字符串
 str = temp; //把构造函数赋给值类型
 temp = null; //最后舍弃临时变量
  • 一些可用的字符串内置对象
  1. 查找字符串
str.indexOf('要查找的字符串',[起始位置]);
//demo:
var str = '我的名字是什么,名字不重要';
console.log(str.indexOf('名字', 3));
  1. 查找指定字符
str.charAt(0); //返回指定下标的字符
str.charCodeAt(0); //返回指定下标的ASCII码
  1. 拼接字符串
str.concat('word') //拼接字符串(开发中隐性拼接居多)
  1. 查找某一连续字符
str.substr('抓起始位置', '抓几个字符'); //查找某一连续字符
  1. 替换字符
str.replace('被替换的字符', '替换为字符') //如果字符串中有重复的字符,只会替换第一个
  1. 字符串转换成数组
split('分隔符') //把字符串转换为数组(被转换字符串中必须要写分隔符,而且要与split的分隔符统一!)

一些传参和类型的–
理论深入:

  • 简单类型又被称为基本类型或者值类型 因为存储是值本身
  • 系统自动分配释放存放函数的值,局部变量的值,被称为栈
  • 复杂类型又叫引用类型 因为存储的是地址 调用的时候需要专门引用
  • 现在栈里面存放16进制地址码,然后指向堆里面的数据(对象实例),被称为堆复杂类型传参,如果不是传值,传的指针,也就是传地址
  • 特殊: Null返回的是一个空的对象(因为程序的设计缺陷)
  • 可以定义变量为Null,稍后再给值

更多编程相关知识,请访问:编程入门!!

#Num數字型 Boolean布林型 Str字串型 Undefined未知的值 Null空

以上是Java Script中值得收藏的學習筆記(總結分享)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除