笔记:JavaScript笔记

1.JavaScript输出

  • 使用 window.alert() 弹出警告框。
  • 使用 document.write() 方法将内容无格式写到 HTML 文档中。
  • 使用 innerHTML 写入到 HTML 元素。
  • 使用 console.log() 写入到浏览器的控制台

write()和innerHTML中都可以添加标签来改变输出的样式。

1.write()和页面一起加载

在加载页面时候执行write()会直接写在html中

<body>
<h1>我的第一个 Web 页面</h1>
<p>我的第一个段落。</p>
<script>
document.write(Date());
</script>
</body>

页面显示

我的第一个 Web 页面
我的第一个段落。

Wed Apr 22 2020 13:16:52 GMT+0800 (中国标准时间)
2.write()在页面加载完成后

如果在文档已完成加载后执行 document.write,整个 HTML 页面将被覆盖。

<body>
<h1>我的第一个 Web 页面</h1>
<p>我的第一个段落。</p>
<button onclick="myFunction()">点我</button>
<script>
function myFunction() {
    document.write(Date());
}
</script>
</body>

页面显示

我的第一个 Web 页面
我的第一个段落。
点我

点击点我按钮之后整个html页面变为下面的:

Wed Apr 22 2020 13:19:31 GMT+0800 (中国标准时间)

2.对象

1.对象也是一个变量,但对象可以包含多个值(多个变量)。

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

2.对象属性有两种寻址方式:

name=person.lastname;
name=person["lastname"];

3.对象方法与调用

<script>
var person = {
    firstName: "John",
    lastName : "Doe",
    id : 5566,
    fullName : function() 
	{
       return this.firstName + " " + this.lastName;
    }
};
//调用方法
document.getElementById("demo").innerHTML = person.fullName();
</script>

3.Undefined 和 Null

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

  • 可以通过将变量的值设置为 null 来清空变量。

  • null和undefined值相等但类型不相等

var person;//undefined
var car="Volvo";//volvo
var car=null;//null

4.HTML事件

事件描述
onchangeHTML元素改变
onclick用户点击HTML元素
onmouseover用户移动鼠标至HTML元素
onmouseout用户从HTML元素移开鼠标
onkeydown用户按下键盘
onload浏览器完成页面加载

其他事件https://www.runoob.com/jsref/dom-obj-event.html

5.字符串string对象

1.字符串及长度

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;

2.特殊字符转义

反斜杠是一个转义字符。 转义字符将特殊字符转换为字符串字符:

转义字符 \ 可以用于转义撇号,换行,引号,等其他特殊字符。

3.字符串可以时对象

var x = "John";
var y = new String("John");

4.字符串属性

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

5.字符串方法

解析:https://www.runoob.com/jsref/jsref-obj-string.html

方法描述
charAt()返回在指定位置的字符。
charCodeAt()返回在指定的位置的字符的 Unicode 编码。
concat()连接两个或更多字符串,并返回新的字符串。
fromCharCode()将 Unicode 编码转为字符。
indexOf()返回某个指定的字符串值在字符串中首次出现的位置。
includes()查找字符串中是否包含指定的子字符串。
lastIndexOf()从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出现的位置。
match()查找找到一个或多个正则表达式的匹配。
repeat()复制字符串指定次数,并将它们连接在一起返回。
replace()在字符串中查找匹配的子串, 并替换与正则表达式匹配的子串。
search()查找与正则表达式相匹配的值。
slice()提取字符串的片断,并在新的字符串中返回被提取的部分。
split()把字符串分割为字符串数组。
startsWith()查看字符串是否以指定的子字符串开头。
substr()从起始索引号提取字符串中指定数目的字符。
substring()提取字符串中两个指定的索引号之间的字符。
toLowerCase()把字符串转换为小写。
toUpperCase()把字符串转换为大写。
trim()去除字符串两边的空白
toLocaleLowerCase()根据本地主机的语言环境把字符串转换为小写。
toLocaleUpperCase()根据本地主机的语言环境把字符串转换为大写。
valueOf()返回某个字符串对象的原始值。
toString()返回一个字符串。

1.concat()方法:连接两个或更多字符串,并返回新的字符串。

var str1 = "Hello ";
var str2 = "world!";
var n = str1.concat(str2);  //Hello world!

2.fromCharCode() 方法:可接受一个指定的 Unicode 值,然后返回一个字符串

var n = String.fromCharCode(65);//n为A

3.match() 方法:在字符串内检索指定的值,或找到一个或多个正则表达式的匹配

var str="The rain in SPAIN stays mainly in the plain"; 
var n=str.match(/ain/g);//ain,ain,ain

match() 方法将检索字符串 String Object,以找到一个或多个与 regexp 匹配的文本。这个方法的行为在很大程度上有赖于 regexp 是否具有标志 g。如果 regexp 没有标志 g,那么 match() 方法就只能在 stringObject 中执行一次匹配。如果没有找到任何匹配的文本, match() 将返回 null。否则,它将返回一个数组,其中存放了与它找到的匹配文本有关的信息。

4.repeat() 方法:字符串复制指定次数。

var str = "Runoob";
str.repeat(2);//RunoobRunoob

5.replace(a,b) 方法:用于在字符串中第一个a替换为b;

6.search(a) 方法:用于检索字符串中a出现的位置

var str="Visit Runoob!"; 
var n=str.search("Runoob");//6

7.slice(start, end) 方法:可提取字符串的某个部分,并以新的字符串返回被提取的部分。

var str="Hello world!";
var n=str.slice(1,5);//ello

字符串中第一个字符位置为 0, 第二个字符位置为 1, 以此类推。

如果时负数:-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。

8.split(a) 方法用于把一个字符串在a处分割成字符串数组。

var str="How are you doing today?";
var n=str.split(" ");//How,are,you,doing,today?

如果把空字符串 ("") 用作 separator截取标记,那么 stringObject 中的每个字符之间都会被分割。

9.截取

  • substring(a,b) 方法:用于提取字符串中介于两个指定下标之间的字符。下标a到b的字符串。

  • slice(start, end) 方法:用于提取字符串中介于两个指定下标之间的字符

  • substr(a,b) 方法可在字符串中抽取从开始下标开始的指定数目的字符。下标a开始的b个字符。

10.trim() 方法:用于删除字符串的头尾空格。

var str = "       Runoob        ";
alert(str.trim());//Runoob

6.运算符

运算符描述
=赋值
==等于
===绝对等于(值和类型都相等)
!=不等于
!==绝对不等于(值和类型有一个不等,或者都不等)

7.typeof:返回变量或表达式类型

<script>
document.getElementById("demo").innerHTML = 
	typeof "john" + "<br>" + 
	typeof 3.14 + "<br>" +
	typeof false + "<br>" +
	typeof [1,2,3,4] + "<br>" +
	typeof {name:'john', age:34};
</script>
//string number boolean object object

8.正则表达式

1.语法;

/正则表达式主体/修饰符(可选)

例如:

var patt = /runoob/i
/*

/runoob/i  是一个正则表达式。
runoob  是一个正则表达式主体 (用于检索)。
i  是一个修饰符 (搜索不区分大小写)。

*/

2.修饰符

修饰符描述
i对大小写不敏感的匹配
g执行全局匹配,而非找到第一个后就停止
m执行多行匹配

3.正则表达式模式

表达式描述
[abc]查找方括号之间的任何字符。
[0-9]查找任何从 0 至 9 的数字。
(x|y)查找任何以 | 分隔的选项。

4.特殊含义的字符

元字符描述
\d查找数字。
\s查找空白字符。
\b匹配单词边界。
\uxxxx查找以十六进制数 xxxx 规定的 Unicode 字符。

5.量词

量词描述
n+匹配任何包含至少一个 n 的字符串。
n*匹配任何包含零个或多个 n 的字符串。
n?匹配任何包含零个或一个 n 的字符串。

6.test()

  • test() 方法是一个正则表达式方法。

  • test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。

var patt = /e/;
patt.test("The best things in life are free!");/true
//或
/e/.test("The best things in life are free!")

7.exec()

  • exec() 方法是一个正则表达式方法。
  • exec() 方法用于检索字符串中的正则表达式的匹配。
  • 该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
/e/.exec("The best things in life are free!");   //e

9.try,catch

<script>
var txt="";
function message(){
	try {
		adddlert("Welcome guest!");
	}
	catch(err) {
		txt="本页有一个错误。\n\n";
		txt+="错误描述:" + err.message + "\n\n";
		txt+="点击确定继续。\n\n";
		alert(txt);
	}
}
</script>

10.表单验证

判断表单字段(fname)值是否存在, 如果不存在,就弹出信息,阻止表单提交:

<form name="myForm" action="demo_form.php"
onsubmit="return validateForm()" method="post">
名字: <input type="text" name="fname">
<input type="submit" value="提交">
</form>

<script>
function validateForm() {
    var x = document.forms["myForm"]["fname"].value;
    if (x == null || x == "") {
        alert("需要输入名字。");
        return false;
    }
}
</script>

1.HTML约束验证

属性描述
disabled规定输入的元素不可用
max规定输入元素的最大值
min规定输入元素的最小值
pattern规定输入元素值的模式
required规定输入元素字段是必需的
type规定输入元素的类型

2.约束验证 CSS 伪类选择器

选择器描述
:disabled选取属性为 “disabled” 属性的 input 元素
:invalid选取无效的 input 元素
:optional选择没有"required"属性的 input 元素
:required选择有"required"属性的 input 元素
:valid选取有效值的 input 元素

11.E-mail验证:

输入的数据必须包含 @ 符号和点号(.)。同时,@ 不可以是邮件地址的首字符,并且 @ 之后需有至少一个点号:

<form name="myForm" action="demo-form.php" onsubmit="return validateForm();" method="post">
Email: <input type="text" name="email">
<input type="submit" value="提交">
</form>

<script>
function validateForm(){
	var x=document.forms["myForm"]["email"].value;
	var atpos=x.indexOf("@");
	var dotpos=x.lastIndexOf(".");
	if (atpos<1 || dotpos<atpos+2 || dotpos+2>=x.length){
		alert("不是一个有效的 e-mail 地址");
  		return false;
	}
}
</script>

12.this关键字

在 JavaScript 中 this 不是固定不变的,它会随着执行环境的改变而改变。

  • 在方法中,this 表示该方法所属的对象。
  • 如果单独使用,this 表示全局对象。在浏览器中,window 就是该全局对象为 [object Window]:
  • 在函数中,this 表示全局对象。在浏览器中,window 就是该全局对象为 [object Window]:
  • 在函数中,在严格模式下,this 是未定义的(undefined)。
  • 在事件中,this 表示接收事件的元素。

13.es6

  • (ES6) 新增加了两个重要的 JavaScript 关键字: letconst
  • let 声明的变量只在 let 命令所在的代码块内有效。
  • const 声明一个只读的常量,一旦声明,常量的值就不能改变。

14.JavaScript JSON

  • 英文全称 JavaScript Object Notation

  • JSON 是用于存储和传输数据的格式。

  • JSON 通常用于服务端向网页传递数据 。

{"sites":[
    {"name":"Runoob", "url":"www.runoob.com"}, 
    {"name":"Google", "url":"www.google.com"},
    {"name":"Taobao", "url":"www.taobao.com"}
]}

1.JSON 语法规则

  • 数据为 键/值 对。
  • 数据由逗号分隔。
  • 大括号保存对象
  • 方括号保存数组

2.函数

函数描述
JSON.parse()用于将一个 JSON 字符串转换为 JavaScript 对象。
JSON.stringify()用于将 JavaScript 值转换为 JSON 字符串。

1.parse()

将一个 JSON 字符串转换为 JavaScript 对象。

<p id="demo"></p>
<script>
	var text = '{"employees":[' +
        '{"name":"菜鸟教程","site":"http://www.runoob.com" },' +
        '{"name":"Google","site":"http://www.Google.com" },' +
        '{"name":"Taobao","site":"http://www.taobao.com" }]}';
	obj = JSON.parse(text);
	document.getElementById("demo").innerHTML =
	obj.employees[1].name + " " + obj.employees[1].site;
</script>

//Google http://www.Google.com

2…stringify()

用于将 JavaScript 值转换为 JSON 字符串。

<p id="demo"></p>
<script>
var str = {"name":"菜鸟教程", "site":"http://www.runoob.com"}
str_pretty1 = JSON.stringify(str)
document.write( "只有一个参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty1 + "</pre>" );
document.write( "<br>" );
str_pretty2 = JSON.stringify(str, null, 4) //使用四个空格缩进
document.write( "使用参数情况:" );
document.write( "<br>" );
document.write("<pre>" + str_pretty2 + "</pre>" ); // pre 用于格式化输出
</script>

/*
只有一个参数情况:
{"name":"菜鸟教程","site":"http://www.runoob.com"}

使用参数情况:
{
    "name": "菜鸟教程",
    "site": "http://www.runoob.com"
}
*/

15.javascript:void(0) 含义

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

16.js对象

1.number对象

  • 无穷大(Infinity)
myNumber=2;
while (myNumber!=Infinity)
{
    myNumber=myNumber*myNumber; // 重复计算直到 myNumber 等于 Infinity
}

  • NaN - 非数字值

    NaN 属性是代表非数字值的特殊值。该属性用于指示某个值不是数字

  • Number 属性

    属性描述
    Number.MAX_VALUE最大值
    Number.MIN_VALUE最小值
    Number.NaN非数字
    Number.NEGATIVE_INFINITY负无穷,在溢出时返回
    Number.POSITIVE_INFINITY正无穷,在溢出时返回
    Number.EPSILON表示 1 和比最接近 1 且大于 1 的最小 Number 之间的差别
    Number.MIN_SAFE_INTEGER最小安全整数。
    Number.MAX_SAFE_INTEGER最大安全整数。
  • 数字方法

    方法描述
    Number.parseFloat()将字符串转换成浮点数,和全局方法 parseFloat() 作用一致。
    Number.parseInt()将字符串转换成整型数字,和全局方法 parseInt() 作用一致。
    Number.isFinite()判断传递的参数是否为有限数字。
    Number.isInteger()判断传递的参数是否为整数。
    Number.isNaN()判断传递的参数是否为 isNaN()。
    Number.isSafeInteger()判断传递的参数是否为安全整数。

2.date对象

3.Array(数组) 对象

1.创建一个数组,有三种方法。

  • 常规方式:
var myCars=new Array();
myCars[0]="Saab";   
myCars[1]="Volvo";
myCars[2]="BMW";

  • 简洁方式:
var myCars=new Array("Saab","Volvo","BMW");

  • 字面:
var myCars=["Saab","Volvo","BMW"];

2.数组方法和属性

var x=myCars.length             // myCars 中元素的数量
var y=myCars.indexOf("Volvo")   // "Volvo" 值的索引值

3.其他方法

4.Math对象

  • round()
    如何使用 round()。
  • random()
    如何使用 random() 来返回 0 到 1 之间的随机数。
  • max()
    如何使用 max() 来返回两个给定的数中的较大的数。
  • min()
    如何使用 min() 来返回两个给定的数中的较小的数。

17.js浏览器window

1.Window 尺寸

有三种方法能够确定浏览器窗口的尺寸。

window.innerHeight - 浏览器窗口的内部高度(包括滚动条)
window.innerWidth - 浏览器窗口的内部宽度(包括滚动条)

document.documentElement.clientHeight
document.documentElement.clientWidth

document.body.clientHeight
document.body.clientWidth

window的其他方法:

  • window.open() - 打开新窗口
  • window.close() - 关闭当前窗口
  • window.moveTo() - 移动当前窗口
  • window.resizeTo() - 调整当前窗口的尺寸

2.Screen

window.screen对象在编写时可以不使用 window 这个前缀。

screen.availWidth - 可用的屏幕宽度
screen.availHeight - 可用的屏幕高度

3.Location

window.location 对象在编写时可不使用 window 这个前缀

location.hostname 返回 web 主机的域名
location.pathname 返回当前页面的路径和文件名
location.port 返回 web 主机的端口 (80 或 443)
location.protocol 返回所使用的 web 协议(http: 或 https:)
location.href 属性返回当前页面的 URL。

4.history

window.history 对象包含浏览器的历史。

window.history对象在编写时可不使用 window 这个前缀。

history.back() - 与在浏览器点击后退按钮相同
history.forward() - 与在浏览器中点击向前按钮相同

5.Navigator

window.navigator 对象包含有关访问者浏览器的信息。

<div id="example"></div>
<script>
txt = "<p>浏览器代号: " + navigator.appCodeName + "</p>";
txt+= "<p>浏览器名称: " + navigator.appName + "</p>";
txt+= "<p>浏览器版本: " + navigator.appVersion + "</p>";
txt+= "<p>启用Cookies: " + navigator.cookieEnabled + "</p>";
txt+= "<p>硬件平台: " + navigator.platform + "</p>";
txt+= "<p>用户代理: " + navigator.userAgent + "</p>";
txt+= "<p>用户代理语言: " + navigator.systemLanguage + "</p>";
document.getElementById("example").innerHTML=txt;
</script>

6.window的弹窗

可以在 JavaScript 中创建三种消息框:警告框、确认框、提示框。

  • 警告框:window.alert(“sometext”);

  • 确认框:window.confirm(“sometext”);

    <button onclick="myFunction()">点我</button>
    <p id="demo"></p>
    <script>
    function myFunction(){
    	var x;
    	var r=confirm("按下按钮!");
    	if (r==true){
    		x="你按下了\"确定\"按钮!";
    	}
    	else{
    		x="你按下了\"取消\"按钮!";
    	}
    	document.getElementById("demo").innerHTML=x;
    }
    </script>
    
    
  • 提示框:window.prompt(“sometext”,“defaultvalue”);

    <button onclick="myFunction()">点我</button>
    <p id="demo"></p>
    <script>
    function myFunction(){
    	var x;
    	var person=prompt("请输入你的名字","Harry Potter");
    	if (person!=null && person!=""){
    	    x="你好 " + person + "! 今天感觉如何?";
    	    document.getElementById("demo").innerHTML=x;
    	}
    }
    </script>
    
    

7.计时事件

在一个设定的时间间隔之后来执行代码,而不是在函数被调用后立即执行。我们称之为计时事件。

  • setInterval() - 间隔指定的毫秒数不停地执行指定的代码。
  • setTimeout() - 在指定的毫秒数后执行指定代码。

18.Cookie

1.Cookie 用于存储 web 页面的用户信息。

2.Cookie 是一些数据, 存储于你电脑上的文本文件中。

3.Cookie 的作用就是用于解决 “如何记录客户端的用户信息”:

  • 当用户访问 web 页面时,他的名字可以记录在 cookie 中。
  • 在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。

4.Cookie 以名/值对形式存储

当浏览器从服务器上请求 web 页面时, 属于该页面的 cookie 会被添加到该请求中。
服务端通过这种方式来获取用户的信息。

5.JavaScript 可以使用 document.cookie 属性来创建 、读取、及删除 cookie。

  • JavaScript 中,创建 cookie 如下所示:
document.cookie="username=John Doe";

  • 还可以为 cookie 添加一个过期时间(以 UTC 或 GMT 时间)。默认情况下,cookie 在浏览器关闭时删除:
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT";

  • 您可以使用 path 参数告诉浏览器 cookie 的路径。默认情况下,cookie 属于当前页面。
document.cookie="username=John Doe; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

6.JavaScript 读取 Cookie

var x = document.cookie;

7.JavaScript 修改 Cookie,修改 cookie 类似于创建 cookie

document.cookie="username=John Smith; expires=Thu, 18 Dec 2043 12:00:00 GMT; path=/";

8.JavaScript 删除 Cookie,只需要设置 expires 参数为以前的时间即可

document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值