javascript基础

一、什么是javascript

运行在浏览器上的脚本语言,让页面更生动,交互性更强;

javascript包括三块:
ECAMScript(核心语法,ES规范)
DOM(文档对象模型)
BOM(浏览器对象模型)
关系图
DOM和BOM的联系?
BOM的顶级对象是:window
DOM的顶级对象是:window.document
实际上BOM是包括DOM的

二、在HTML中嵌入javascript代码的方式

1.事件:事件驱动型的编程语言:

οnclick="js代码"执行原理:

	页面打开的时候,js代码不会执行,只是把这段js代码注册到按钮的click事件中;等按钮发生click事件之后,才会执行

window对象

1、在js中内置对象,可以直接使用,代表的是浏览器对象
2、window对象有函数:alert,用法:window.alert("消息");
2.脚本块的方式
<script type="text/javascript">
		window.alert("hello world");  
</script>
3.引入外部js文件
<script type="text/javascript" src="引入路径"></script>	js文件中的代码自上而下依次执行

三、标识符

命名规则:
数字、字母、美元符号、下划线组成
不能用数字开头
严格区分大小写

四、变量

javascript是一种弱类型语言

在js当中变量没有手动赋值的时候,系统默认复制undefined;

声明
		var i;
赋值
		i=10;

全局变量

	1、在函数体之外声明的变量
	2、生命周期:浏览器打开时声明,浏览器关闭时销毁,尽量少用,占用内存;

局部变量

	1、在函数体中声明
	2、生命周期:函数开始执行时局部变量的内存空间开辟,函数执行结束

当一个变量声明时不使用var,则该变量一定是成员变量;

	i=10;

五、函数

函数定义

function  sum(a,b){
};

sum = function(a,b){
}

js函数在调用的时候,参数类型没有限制,参数个数也没有限制;

六、数据类型

原始类型

	Undefined、Number、String、Boolean、Null、Symbol

引用类型;

	Object以及其子类;

typeof+变量名

	在程序运行阶段动态的获取变量的类型;
		返回值:
		undefined、number、string、boolean、object、function

“==”

	js中做比较运算

undefined类型

	当一个变量没有手动复制,系统默认复制undefined;

number类型

	NaN  0 1 2 ....  Infinity
	整数、小数、负数、不是数字、无穷大都是Number类型。
什么情况下出现NaN:
	not a number :运算结果本来应该是一个数字,但实际不是一个数字;
    Infinity:当除数为0的时候,为无穷大
	
	函数:
	isNaN():判断是不是一个数字;不是返回true,是返回false
	parseInt():将字符串转换成数字,并取整数位
	parseFloat():将字符串转换成数字
	Math.ceil():向上取整

boolean类型

	true/false
	函数:
	Boolean(数据):会将数据转换为boolean类型的
		Boolean(1); true
			Boolean(0); false
				Boolean(""); false
					Boolean("abc"); true
						Boolean(null); false
							Boolean(NaN); false
								Boolean(undefined); false
									Boolean(Infinity); true
	js中会自动调用该函数;

string类型

1、js中可以使用单引号/双引号;
2、创建字符串对象
		var s  = "字符串" ;     string
		var s2 = new String("abc")   object
		String是内置的支持类,父类是Object;
3、常用函数
		indexOf
		lastIndexOf
		replace
		spilt
		substring(startIndex,endIndex):注意不包含endIndex
		substr(startIndex,length):  	

Object类型

		1、Object类型是所有类型的超类,自定义的任何类型,默认继承Object;
		2、属性
			prototype属性:给类动态的扩展属性和函数(重点)
			consturctor属性
		3、定义类的方法(和定义函数是一样的,看你怎么调用)
			第一种方法:
			function 类名(形参){
			}
			第二种方法:
			类名=function(形参){
			}
		4、创建对象的语法:
			new 构造器方法();
		5、在js种类的定义和构造函数的定义是放在一起完成的;

null、NaN、undefined区别

	数据类型不一致
			null null类型/object
			NaN number类型
			undefined undefined类型

运算符"==="

	==比较值
	===比较值和数据类型

七、常用事件

 (1) blur失去焦点
 (2) focus获得焦点
 
 (3) click鼠标单击
 (4) dblclock鼠标双击
 
 (5) keydown键盘按下
 (6) keyup键盘弹起
 
 (7) mousedown鼠标按下
 (8) mouseover鼠标经过
 (9) mousemove鼠标移动
 (10)mouseout 鼠标离开
 (11) mouseup 鼠标谈起
 
 (12) reset 表单重置
 (13) submit表单提交
 (14)change下拉列表选中项改变,或文本框内容改变
(15) select文本选定
(16) load页面加载完毕

任何一个事件都对应一个事件句柄,事件句柄以标签的属性方式存在;

回调函数

	特点:自己将函数写出来,但是别人调用;

注册事件的两种方式

1、使用事件句柄:

	<input type="button" value="hello" onclick="函数" />

2、使用js代码完成事件的注册

	var btnObj =  document.getElementById("mybtn");  document内置对象,代表整个HTML页面
	btnObj.onclick =doSome; 注意别写小括号;btnObj.onclick=doSome();这是错误的写法
	btnObj.onclick=function(){   注册匿名函数
	}

js代码的执行顺序

HTML默认是从上而下依次执行

onload的用法

方式一

	
    <body onload="ready()">
    		<script type="text/javascript">
		function ready(){
			alert("在页面加载完成之后执行")
		}
			</script>
	</body>

方式二

	<body >
		<script type="text.text/javascript">
			window.onload = ready;
			
			function ready(){
				alert("在页面加载完成之后执行")
			}
			
		</script>
		
	</body>

捕捉回车键和esc键

<body >
		<script type="text/javascript">
			window.onload =function(){
				
				var btnObj = document.getElementById("username");
				//回车键的键值是13
				//ESC键的键值是27
				btnObj.onkeydown = function(event){
					//获取键值
					if(event.keyCode==13){
						alert("捕捉到回车键");
					}
				}
				
			}
			
		</script>
		<input type="text" id="username" />你好
	</body>

运算符void

需求:既保留超链接的样式,用户点击后执行一段js代码,但是页面不能跳转

	运算原理:执行表达式,但不返回任何结果
	”javascript:“ 的作用是告诉浏览器后面是一段javascript代码
	<a href="javascript:void(0)"  onclick="window.alert('test code')"></a>

js的控制语句

if
switch
while
do  while
for 
break
continue
for in
with 

创建数组

var arr = [false,true,1,2] ;
js中数组元素的类型随意,个数随意,不统一

遍历数组

for(var i =0,i<arr.length,i++){
alert(arr[i]);
}

for in 语句:可以遍历对象的属性

for(var i in arr){      
	alert(arr[i]);
}

当遍历数组的时候:i为数组的下标

for(var i in object){
	alert(object[i])
}

当遍历对象的时候:i为对象的属性名

with语句

with(u){
	alert(username)       等同于 u.username
}

DOM编程

Document Object Model :对网页中的节点进行增删改查的过程。(HTML文档被当作一个dom树)

获取文本框的值
document.getElementById("id").value;
innetHTML和innerText操作div和span

相同点:都是设置元素内部的内容
不同点:
innerHTML会把后面的”字符串“当作一段HTML代码解释并执行;
innerText即使后面是一段HTML代码,也只是将其当作普通的字符串来看待;

正则表达式

Regular Expression
主要用在字符串格式匹配方面

创建正则表达式

	方式一
var regExp = /正则表达式/flags;
	方式二
var regExp = new RegExp("正则表达式","flags");
	关于flags可取值
		g:全局匹配
		i:忽略大小写
		m:多行查找	

正则表达式的test()方法

true/false   = 正则表达式对象.test(用户填写的字符串);
true:字符串格式匹配成功
false:字符串格式匹配失败
trim:去除字符串的前后空白
” 字符串“.trim();
表单验证
单选全选
周期函数

v=window.setInterval(函数,间隔时间);
clearInerval(v);

内置支持类date、array

array.join("—") 返回字符串以—分隔;
array.push(元素);将该“元素”添加到末尾
array.pop();将末尾元素弹出 (模拟栈结构:先进后出,后进先出)
array.reverse();将数组元素顺序反转

BOM编程

Browser Object Model :包括关闭浏览器,打开一个新的浏览器,后退,前进,浏览器地址栏上的地址等

window.open("url");开启新窗口
window.close():关闭当前窗口
var ok = window.confirm("请,确认删除数据吗"); 点确认返回ture
window.history.back();
window.history.go(-1);
window.location.href="url"   操作url地址栏的地址;

JSON

JavaScript Object Notation,简称JSON。(数据交换)
JSON主要作用:一种标准的数据交换格式。

eval函数:将字符串当作一段代码解释并执行
window.eval(“var i = 100;”) 可以将该字符串当作js代码执行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值