JavaScript基础篇中

JavaScript笔记

1.HTML事件

1.1 HTML事件

HTML事件: HTML事件可以是浏览器事件,也可以是用户事件。
常见的HTML事件有:

  • HTML 页面完成加载
  • HTML input 字段改变时
  • HTML 按钮被点击

实例:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
</head>
<body>

<button onclick="getElementById('demo').innerHTML=Date()">现在的时间是?</button>
<p id="demo"></p>

</body>
</html>

上述功能实现了一个点击按钮后显示当前时间的一个功能。也可以用函数形式实现:

<!DOCTYPE html>
<html>
<head> 
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
	<script>
		function A(){
		document.getElementById('demo').innerHTML=Date();
		}
	</script>
</head>
<body>


<button onclick="A()">现在的时间是?</button>
<p id="demo"></p>

</body>
</html>

更多的事件请查看:HTML DOM 事件

1.2 JavaScript 可以做什么?

事件可以用于处理表单验证,用户输入,用户行为及浏览器动作:

  • 页面加载时触发事件
  • 页面关闭时触发事件
  • 用户点击按钮执行动作
  • 验证用户输入内容的合法性
  • 等等 …

可以使用多种方法来执行 JavaScript 事件代码:

  • HTML 事件属性可以直接执行 JavaScript 代码
  • HTML 事件属性可以调用 JavaScript 函数
  • 你可以为 HTML 元素指定自己的事件处理程序
  • 你可以阻止事件的发生。
  • 等等 …

2.字符串

2.1 字符串索引

不区分单引号和双引号。
访问字符串时可以使用索引,默认从0开始。

var carname = 'Volvo XC60';
var character = carname[7];
2.2 字符串长度

使用.lengh可以获得字符串的长度。

var txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var sln = txt.length;
2.3 特殊字符

字符串是需要用单引号,双引号包裹的。
若字符串内容也包含了单引号或者双引号,则会影响正常显示。
解决的办法:使用转义字符 “\”

代码输出
\'单引号
\"双引号
\\反斜杠
\\\\双斜杠
\n换行
\r回车
\t制表符(Tab)
\b退格符
\f换页符
注: 字符串可能是对象,也可能是变量。
var x = "John";
var y = new String("John");
typeof x // 返回 String
typeof y // 返回 Object
var x = "John";              
var y = new String("John");
(x === y) // 结果为 false,因为 x 是字符串,y 是对象

=:赋值
==:值相等
===:值和类型完全相等

常见的字符串方法:

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

3.运算符

JavaScript的运算符基本和Java的一模一样。
需要注意的地方:

3.1 数字和字符串相加

当数字和数字相加后,结果为数字;
当字符串和字符串相加后,结果为字符串;

x=5+5;
y="5"+5;

返回:

10
55

没有任何问题!
但是当数字和字符串相加后,返回的字符串,字符串字符串!!!

z="Hello"+5;

返回:

Hello5

这就引申出了一个方法:
当需要把数字转换为字符串时:

var a = " "+5;
var b = "     "+5;

得到的是:

  5
      5

空格是会计算的,因为是字符串。有时候html页面会省略前面的空格,直接显示数字。但其实还是字符串类型,不管省略与否,调试模式下看到的总是不会省略的。

3.2 数字和布尔值、空值相加

结果为数字!!!
布尔值 false 转成 0,true 转成 1,空值(null)转成数字0

var one=13;
var two=true;
var three=one+two;

结果

 three:14
3.3 字符串和布尔值、空值相加

布尔值转化为字符串,空值(null)转成字符串null。

var one="我爱你";
var two=true;
var three=one+two;

结果

 three:我爱你true
3.4取模(取余)运算

取模运算的符号是:“%”,返回的是余数。
取模运算的结果符号只与左边值的符号有关:

  • 如果 % 左边的操作数是正数,则模除的结果为正数或零;
  • 如果 % 左边的操作数是负数,则模除的结果为负数或零。
var x = 7 % 3; 
var y = 7 % (-3); 
var z = (-7) % 3; 

结果

 1
 1
-1

总结:

运算类型处理结果
数字+数字数字
字符串+字符串字符串
数字+字符串字符串
数字+布尔值数字
false 转成 0,true 转成 1
字符串+布尔值字符串
false 转成"false",true 转成"true"
数字+空值数字
null 转成0
字符串+空值字符串
null 转成"null"
布尔值+空值数字
false 转成 0,true 转成 1,null 转成0

4.For循环

JavaScript的循环语句跟Java基本类似。
市面上大多数程序员的习惯依然是多用if else,少用switch。

4.1 For In 循环

for/in 语句循环遍历对象的属性:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body>
	
<p>点击下面的按钮,循环遍历对象 "person" 的属性。</p>
<button onclick="myFunction()">点击这里</button>
<p id="demo"></p>
<script>
function myFunction(){
	var x;
	var txt="";
	var person={fname:"Bill",lname:"Gates",age:56}; 
	for (x in person){
		txt=txt + person[x];
	}
	document.getElementById("demo").innerHTML=txt;
}
</script>
	
</body>
</html>

核心部分

function myFunction(){
	var x;
	var txt="";
	var person={fname:"Bill",lname:"Gates",age:56}; 
	for (x in person){
		txt=txt + person[x];
	}

上述代码中,x是变量,person是对象。x遍历时从0到2,因为对象person里只有三个属性。当遍历完时停止。

5.类型

5.1 类型判断

typeof 操作符
你可以使用 typeof 操作符来检测变量的数据类型。

实例

typeof "John"                // 返回 string 
typeof 3.14                  // 返回 number
typeof NaN                   // 返回 number
typeof false                 // 返回 boolean
typeof [1,2,3,4]             // 返回 object
typeof {name:'John', age:34} // 返回 object
typeof new Date()            // 返回 object
var person = null;           // 返回 object
var person = undefined;      // 返回 undefined
var a;						 // 返回 undefined

注: 字符如果对象是 JavaScript Array 或 JavaScript Date ,我们就无法通过 typeof 来判断,因为都是返回 object。

5.2 null和undefined的区别
nullundefined
类型objectundefined
作用有过数据需要释放内存声明一个变量但未赋值时的默认值
二者在比较时,== 返回 true,=== 返回 false。

6.类型转换

6.1 将数字转换为字符串
6.1.1全局方法:string()
String(x)         // 将变量 x 转换为字符串并返回
String(123)       // 将数字 123 转换为字符串并返回
String(100 + 23)  // 将数字表达式转换为字符串并返回
6.1.2 Number 方法 toString()
x.toString()
(123).toString()
(100 + 23).toString()
6.2 将布尔值转换为字符串
6.2.1全局方法:string()
String(false)        // 返回 "false"
String(true)         // 返回 "true"
6.2.2 Boolean 方法 toString()
false.toString()     // 返回 "false"
true.toString()      // 返回 "true"
6.3 将日期转换为字符串

Date() 返回日期字符串。

6.3.1全局方法:string()
String(new Date()) 
6.3.2 Date 方法 toString()
obj = new Date()
obj.toString() 
6.4 将字符串转换为数字

全局方法 Number() 可以将字符串转换为数字。
字符串包含数字(如 “3.14”) 转换为数字 (如 3.14).
空字符串转换为 0。
其他的字符串会转换为 NaN (不是个数字)。

Number("3.14")    // 返回 3.14
Number(" ")       // 返回 0 
Number("")        // 返回 0
Number("99 88")   // 返回 NaN
6.5 将布尔类型转换为数字
Number(false)     // 返回 0
Number(true)      // 返回 1

7.正则表达式

正则表达式是由一个字符序列形成的搜索模式。
当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
正则表达式可以是一个简单的字符,或一个更复杂的模式。
正则表达式可用于所有文本搜索和文本替换的操作。

7.1 正则表达式

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

var patt = /runoob/i
7.2 使用字符串方法

search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。
实例:

search() 方法使用正则表达式:
var str = "Visit Runoob!"; 
var n = str.search(/Runoob/i);
search() 方法使用字符串:
var str = "Visit Runoob!"; 
var n = str.search("Runoob");
输出结果为:
6

=================================================================================

replace() 方法使用正则表达式
var str = document.getElementById("demo").innerHTML; 
var txt = str.replace(/microsoft/i,"Runoob");
replace() 方法使用字符串
var str = document.getElementById("demo").innerHTML; 
var txt = str.replace("Microsoft","Runoob");
输出结果为:
Visit Runoob!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值