JavaScript 基础知识梳理

总结自:http://outofmemory.cn/javascript/tutorial/js-tutorial.html

数据类型

字符串(String)、数字(Number)、布尔(Boolean)、数组(Array)、对象(Object)、空(Null)、未定义(Undefined)。

// 字符串 数字 布尔
var str="Hello World";
var x1=34.00;
var x2=34;
var x=true;

// 数组
var arr1 = new Array();
cars[0]="Js";
var arr2 = new Array("Saab","Volvo","BMW");

// 对象
var person = { firstname: "John", lastname: "Doe", id: 5566};

var person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";

Undefined 这个值表示变量不含有值。

对象

在 JavaScript 中,几乎所有的事物都是对象:字符串(String)、数字(Number)、数组(Array)、日期(Date)、函数(Function),等等。

var carname = new String;
var x = new Number;
var y = new Boolean;
var cars = new Array;
var person = new Object;

作用域

在 JavaScript 中, 对象和函数同样也是变量。

在 JavaScript 中, 作用域为可访问变量,对象,函数的集合。

变量在函数内声明,变量为局部作用域,只能在函数内部访问。

变量在函数外定义,即为全局变量。

如果变量在函数内没有声明(没有使用 var 关键字),该变量为全局变量。

函数参数只在函数内起作用,是局部变量。

变量生命周期:

  • JavaScript 变量生命周期在它声明时初始化。
  • 局部变量在函数执行完毕后销毁。
  • 全局变量在页面关闭后销毁。

字符串

var str = “It’s js”;
var str2 = new String(“Hello”)

不要创建 String 对象。它会拖慢执行速度,并可能产生其他副作用。

运算符

算术运算符:
+	加法
-	减法
*	乘法
/	除法
%	取模(余数)
++	自增	x=++y  x=y++
--	自减z

赋值运算符:
=
+=
-=
*=
/=
%=

比较运算符:
==	等于
===	绝对等于 (值和类型均相等)
!=	 不等于
!==	 绝对不等于 (值和类型均不相等)
>	 大于
<	 小于
>=	 大于或等于
<=	 小于或等于

逻辑运算符:
&&	and	(x < 10 && y > 1) 为 true
||	or	(x==5 || y==5) 为 false
!	not	!(x==y) 为 true

条件运算符(三元表达式)”
(condition)?value1:value2

条件语句

if (condition1){
    //当条件 1 为 true 时执行的代码
}
else if (condition2){
    //当条件 2 为 true 时执行的代码
}
else{
    //当条件 1 和 条件 2 都不为 true 时执行的代码
}
switch(n)
{
    case 1:
        //执行代码块 1
        break;
    case 2:
        //执行代码块 2
        break;
    default:
        //n 与 case 1 和 case 2 不同时执行的代码
}

循环

for 循环

var i;
for(i=0;i<10;i++){
    // 
}

for in 循环
遍历对象属性:

var x;
var txt="";
var person={fname:"Bill",lname:"Gates",age:56}; 

for (x in person){
    txt=txt + person[x];
}
while (条件)
{
    //需要执行的代码
}


do{
    //需要执行的代码
}while (条件)

js 错误

抛出(throw)错误

当错误发生时,JavaScript 引擎通常会停止,并生成一个错误消息。


throw 语句允许我们创建自定义错误。

异常可以是 JavaScript 字符串、数字、逻辑值或对象。

throw exception

捕获错误

try{
   //在这里运行代码
}
catch(err){
    //在这里处理错误
}

保留关键字

ES3 及 ES5 中的保留关键字:

abstract	arguments	boolean	break	byte
case	catch	char	class*	const
continue	debugger	default	delete	do
double	else	enum*	eval	export*
extends*	false	final	finally	float
for	function	goto	if	implements
import*	in	instanceof	int	interface
let	long	native	new	null
package	private	protected	public	return
short	static	super*	switch	synchronized
this	throw	throws	transient	true
try	typeof	var	void	volatile
while	with	yield	

JavaScript 对象、属性和方法:

Array	Date	eval	function	hasOwnProperty
Infinity	isFinite	isNaN	isPrototypeOf	length
Math	NaN	name	Number	Object
prototype	String	toString	undefined	valueOf

json

JSON 英文全称 JavaScript Object Notation;

var text = '{"name":"Jhon"}';
var obj = JSON.parse(text);

javascript:void(0)

javascript:void(0) 中最关键的是 void 关键字, void 是 JavaScript 中非常重要的关键字,该操作符指定要计算一个表达式但是不返回值。

href="#"与href="javascript:void(0)"的区别 :# 包含了一个位置信息,默认的锚是#top 也就是网页的上端;而javascript:void(0), 仅仅表示一个死链接。

DOM

var x = document.cookie;

// 
document.write("<h1>这是一个标题</h1>");

// 
x=document.getElementById("demo");  // 找到元素
x.innerHTML="Hello JavaScript!";    // 改变内容
x.style.color="#ff0000";          // 改变样式
if(x==""||isNaN(x)){}

关于 DOM 的知识点太多,此篇对 DOM 知识点不做重点介绍。更多请参考:http://outofmemory.cn/javascript/tutorial/js-htmldom.html

对象

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…

此外,JavaScript 允许自定义对象。

var person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue"; 
function person(firstname,lastname,age,eyecolor)
{
    this.firstname=firstname;
    this.lastname=lastname;
    this.age=age;
    this.eyecolor=eyecolor;
    this.changeName=changeName;

    function changeName(name) {
        this.lastname=name;
    }
}

JavaScript for…in 语句循环遍历对象的属性。

for (variable in object)
{
    // code to be executed
}

Number 对象

JavaScript 只有一种数字类型;

如果前缀为 0,则 JavaScript 会把数值常量解释为八进制数,如果前缀为 0 和 “x”,则解释为十六进制数。

默认情况下,JavaScript 数字为十进制显示。

但是你可以使用 toString() 方法 输出16进制、8进制、2进制。

var myNumber = 128;
myNumber.toString(16);
myNumber.toString(8);
myNumber.toString(2);
无穷大(Infinity)

当数字运算结果超过了JavaScript所能表示的数字上限(溢出),结果为一个特殊的无穷大(infinity)值,在JavaScript中以 Infinity 表示。同样地,当负数的值超过了JavaScript所能表示的负数范围,结果为负无穷大,在JavaScript中以 -Infinity 表示。

NaN - 非数字值

NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字。可以把 Number 对象设置为该值,来指示其不是数字值。

var x = 1000 / "Apple";

数字属性

MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
POSITIVE_INFINITY
NaN
prototype
constructor

数字方法

toExponential()
toFixed()
toPrecision()
toString()
valueOf()

String 对象

属性:

constructor 返回创建字符串属性属性的函数
length 返回字符串的长度
prototype 允许您向对象添加属性和方法

字符串方法:

charAt()	返回指定索引位置的字符
charCodeAt()	返回指定索引位置字符的 Unicode 值
concat()	连接两个或多个字符串,返回连接后的字符串
fromCharCode()	将字符转换为 Unicode 值
indexOf()	返回字符串中检索指定字符第一次出现的位置
lastIndexOf()	返回字符串中检索指定字符最后一次出现的位置
localeCompare()	用本地特定的顺序来比较两个字符串
match()	找到一个或多个正则表达式的匹配
replace()	替换与正则表达式匹配的子串
search()	检索与正则表达式相匹配的值
slice()	提取字符串的片断,并在新的字符串中返回被提取的部分
split()	把字符串分割为子字符串数组
substr()	从起始索引号提取字符串中指定数目的字符
substring()	提取字符串中两个指定的索引号之间的字符
toLocaleLowerCase()	根据主机的语言环境把字符串转换为小写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLocaleUpperCase()	根据主机的语言环境把字符串转换为大写,只有几种语言(如土耳其语)具有地方特有的大小写映射
toLowerCase()	把字符串转换为小
toString()	返回字符串对象值
toUpperCase()	把字符串转换为大写
trim()	移除字符串首尾空白
valueOf()	返回某个字符串对象的原始值

Date(日期) 对象

new Date() // 当前日期和时间
new Date(milliseconds) //返回从 1970 年 1 月 1 日至今的毫秒数
new Date(dateString)
new Date(year, month, day, hours, minutes, seconds, milliseconds)

// demo
var today = new Date()
var d1 = new Date("October 13, 1975 11:13:00")
var d2 = new Date(79,5,24)
var d3 = new Date(79,5,24,11,33,0)

设置日期

var myDate=new Date();
myDate.setFullYear(2010,0,14);

myDate.setDate(myDate.getDate()+5);

使用 getFullYear() 获取年份。

getTime() 返回从 1970 年 1 月 1 日至今的毫秒数。

如何使用 setFullYear() 设置具体的日期。

如何使用 toUTCString() 将当日的日期(根据 UTC)转换为字符串。

如何使用 getDay() 和数组来显示星期,而不仅仅是数字。

数组

创建

// 1: 常规方式:

var myCars=new Array(); 
myCars[0]="Saab";       
myCars[1]="Volvo";
myCars[2]="BMW";

// 2: 简洁方式:

var myCars=new Array("Saab","Volvo","BMW");

// 3: 字面:

var myCars=["Saab","Volvo","BMW"];

访问及修改

var name=myCars[0];

myCars[0]="Opel";
更多实例
合并两个数组 - concat()

合并三个数组 - concat()

用数组的元素组成字符串 - join()

删除数组的最后一个元素 - pop()

数组的末尾添加新的元素 - push()

将一个数组中的元素的顺序反转排序 - reverse()

删除数组的第一个元素 - shift()

从一个数组中选择元素 - slice()

数组排序(按字母顺序升序)- sort()

数字排序(按数字顺序升序)- sort()

数字排序(按数字顺序降序)- sort()

在数组的第2位置添加一个元素 - splice()

转换数组到字符串 -toString()

在数组的开头添加新元素 - unshift()

Boolean 对象

var myBoolean=new Boolean();

如果布尔对象无初始值或者其值为:

0
-0
null
""
false
undefined
NaN

那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 “false” 时)!

Math(算数) 对象

var x=Math.PI;
var y=Math.sqrt(16);

Math.E
Math.PI
Math.SQRT2
Math.SQRT1_2
Math.LN2
Math.LN10
Math.LOG2E
Math.LOG10E

Math.random() 函数返回一个浮点,  伪随机数在范围[0,1),也就是说,从0(包括0)往上,但是不包括1(排除1),然后您可以缩放到所需的范围。实现将初始种子选择到随机数生成算法;它不能被用户选择或重置。

Math.min([value1[,value2, ...]]) 给定数值中最小的数。如果任一参数不能转换为数值,则返回NaN。

Math.floor(x)  向下取整,一个表示小于或等于指定数字的最大整数的数字。

更多请参考:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Math/

RegExp 对象

var patt= new RegExp(pattern , modifiers);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值