javascript基础
来源:互联网 发布:李连杰眼睛 知乎 编辑:程序博客网 时间:2024/06/05 02:18
本周学习知识点:
一、javascript基本语法:
javascript 和 java的区别
变量
数据类型
闭包特性
运算符和流程控制
对象的声明与应用
函数的声明与应用
二、javascript 内置对象:
1. 日期对象
2. 数学对象
3. 字符串对象
4. 数组对象
5. 正则表达式对象
三、javascript DOM和事件:
1. DOM概念
2. DOM的增删改查
3.window对象的子对象
4.javascript位置相关的属性
5. 事件分类
6. 事件绑定
一、javascript基本语法:
A、javascript 和 java的区别
javascript 是解释型语言;java是编译型语言
区别在于:解释型语言先将编写的代码翻译成计算机认识的二进制代码,翻译之后直接执行其结果,而编译型语言会先将翻译的结果生成可执行文件,下次再请求时直接执行这个可执行文件即可。
B、变量
1. 声明变量使用var关键字,变量一旦声明后直到浏览器关闭,变量才被释放。
2.javascript中变量作用域和php的变量作用域是不一样。
全局变量指的是在函数外面声明的变量;局部变量指的是在函数内部声明的变量(javascript的全局变量是在整个javascript执行的范围内 全部都可以使用)。
在php中如果在函数内部想使用外部的变量,需要先把这个变量声明为全局的 global 或 $GLOBALS。
3.如果函数内和函数外定义了相同的变量,函数内部使用局部的变量,函数外部使用全局的变量。
4.javascript代码执行过程:遇到函数先开辟一块空间,所以执行到第一个alert时,还没有定义这个变量所以为undefined。
var v=’global’;
function test(){
alert();//undefined
var v=’function’;
alert(v);
}
test();
C、数据类型
1. 基本数据类型:
a. 字符串
b. 数值型
c. 布尔型
2. 复合数据类型
a. 对象
b. 数组
3. 其他数据类型
a. 函数
b. null
c. undefined
D、javascript的闭包特性
闭包是javascript语言的一个特性;
当我们在函数内定义一个函数时,并且在函数外使用了这个内部函数的引用,这种情况就会产生一个闭包。
闭包的结果是:我们可以在内部函数中使用外部函数的变量,也就是内部函数将外部函数的变量包含在了内部函数中。
闭包所包含的是当前变量最终的值。
闭包作用:闭包可以让我们在函数外部得到函数内部作用域的变量。
E、 数据类型之间的转换
1. 自动类型转换:
在运行 + 操作时,如果出现字符串 和 数值类型的运算,数值类型会自动被转换为字符串类型
2. 强制类型转换:
当自动类型转换不能实现我们的需要时,我们需要手动的转换(强制类型转换)
String()
Number()
Boolean()
parseInt()
parseFloat()
F、运算符和表达式
1. 算数运算符:+ - * / % ++ --
+ 有两种用法: 字符串连接 四则运算
2. 赋值运算符:= += -= *= /= %=
3. 条件运算符:> < == != >= <= === !==
4. 逻辑运算符:&& || !
5. 其他运算符 ?: 三目运算符
G、循环结构
while():条件型语句
do-while()
for(): 计数型语句
break: 语句
continue: 语句
二、javascript 内置对象:
A、日期对象:可以使用系统内置的构造函数来创建日期对象:new Date();
日期对象方法:
getYear()//返回年份,不建议使用
getFullYear()//返回年份,4位数,建议使用
getMonth()//返回月份,其值范围为0~11
getDate()//返回日期对象中的一个月中的第几天
getDay()//返回星期中的某一天,0~6
getHours()//返回日期对象中的小时部分
getMinutes()//返回日期对象中的分钟部分
getSeconds()//返回日期对象中的秒钟部分
getMilliseconds()//返回日期对象中的毫秒部分
getTime()//返回日期对象中的时间戳的毫秒数
getTimezoneOffset()//返回日期对象中的时区的时差数,单位是秒
B、数学对象:为数学计算提供常量和计算函数。
1. 数学对象的属性:
Math.PI://3.1415926
Math.SQRT2://2的平方根
2.数学对象的方法:
Math.abs()://绝对值
Math.ceil()://进一取整
Math.floor()://退一取整
Math.max(num1,num2….)://取最大值
Math.min()://取最小值
Math.pow(x,y)://返回x的y次幂
Math.random()://0.0~1.0之间的随机数
Math.round()://四舍五入
Math.sqrt2()://平方根
C、字符串对象:
字符串对象的方法:
indexOf(“abc”)//返回子字符串abc在字符串中第一次出现的位置
lastIndexOf(“abc”)//返回子字符串abc在字符串中最后一次出现位置
match(regexp)//找到一个或多个正则表达式的匹配
replace(表达式,替换的字符串)//替换一个与正则表达式相匹配的子串
search(regexp)//查找与正则表达式相匹配的子字符串
split(正则表达式,数组最大长度)//用于把一个字符串分割成字符串的数组
slice(startindex,endindex)//返回一个子字符串(截取字符串
substr(startindex,length) //返回一个子字符串
substring(startindex,endindex) //返回一个子字符串
toLowerCase()//将字符串转换为小写
toUpperCase()//将字符串转换为大写
字符串对象拥有的属性:
constructor //对创建该对象的函数的引用
length //字符串的长度
D、数组对象 :
数组对象的属性:
array.length//数组元素的个数
数组对象的方法
toString()//将数组转换为字符串
join()//将数组元素连接成字符串
push()//在数组尾部添加元素
concat()//添加元素并生成新数组
unshift()//在数组头部添加元素
pop()//删除并返回数组的最后一个元素
shift()//删除并返回数组的第一个元素
splice()//删除、替换或插入数组元素
slice()//返回数组中的一部分(截取)
reverse()//颠倒数组中的元素
sort()//将数组元素排序
遍历数组:
for() 循环
for...in()循环
E、RegExp对象
正则表达式:用来存储规则对象(正则表达式是一种规则,一种语言,他不依赖任何语言,只是某种语言如何支持正则表达式)。
三、javascript DOM和事件
DOM:Document Object Model:文档对象模型象
Document: 文档 html、xml文件
Object: 如果使用js操作html文档,就需要先将html文档转换成js对象。
a.操作属性
b.操作内容(IE/Chrome innerText FF:textContent)、innerHTML、表单
c.操作样式(内联)
d.转成对象的两种方法:
(1)通过元素名(多个),id(一个),name(多个)
var obj=document.getElementsByTagName('div');
var obj=document.getElementById('div');
var obj=document.getElementsByName();//通常表单使用此方法
(2) 通过数组的形式
//var obj=document.images();//找到所有图像
//var obj=document.forms();//找到所有表单
//var obj=document.scripts();//找到所有脚本
//var obj=document.links();//找到所有超链接
//var obj=document.embeds();//视频、音频
Model: 根据树状结构将文档转换成一个一个的节点。
通过某一个节点,通过节点之间的关系能够找到其他的节点:
父节点:parentNode
子节点(长子、次子)childNodes firstChild lastChild
同胞节点(第一个、第二个)nextSibling previousSibling
每个节点都有三个属性:
nodeName:节点名称
nodeValue:节点值
nodeType: 节点类型(元素节点类型、属性节点、文本节点)
注意:nodeValue属性对于文档节点和元素节点是不可用的。
A、JavaScript对象模型由以下4个部分组成:
1.JavaScript语言核心部分:该部分主要包括JavaScript的数据类型、运算符和表达式。
2.与数据类型相关的核心对象:布尔对象、日期对象、数学对象、数字对象和字符串对象等。
3.与浏览器相关的对象:该部分主要包括Window对象、Navigator对象、Location 、History、 screen 对象等。
4.与文档相关的对象:Document对象、Form对象和Image对象等。
B、JavaScript的对象层次:Window对象是整个浏览器窗口,而Document对象只是用于显示HTML文档的白色区域。
C、BOM :浏览器对象模型(Brower Object Model),该对象模型提供了独立于内容的、与浏览器窗口进行交互的对象。
window对象是BOM模型中的顶层对象,因此所有BOM模型中的对象都是该对象的子对象。
window对象子对象:
Document对象Document对象就是HTML对象
History对象History对象所存储的是当前窗口的浏览历史
Back() 回到上一历史记录网址
Forward()回到下一历史记录网址
Go()去哪个地址
Location对象当前文档的URL
Math对象为数学计算提供常量和计算函数
Navigator对象浏览器的总体信息
Screen对象有关用户所使用的显示器信息
Screen.availHeight 屏幕区域可用高度
screen.availWidth 屏幕区域可用宽度
Screen.height 屏幕区域实际高度
Screen.width 屏幕区域实际宽度
D、window 对象常用方法:
alert()
confirm()
prompt()
setInterval()注意可以开多个定时器
clearInterval()
setTimeout()
clearTimeout()
open()
E、javascript 位置相关属性:
style.top:元素距离顶部距离
style.left:元素距离左边的距离
offsetWidth:对象(元素)的宽度
offsetHeight:对象(元素)的高度
offsetTop: 距离对象的父元素的顶部的距离
offsetLeft: 距离对象的父元素的左边的距离
F、事件的绑定:
1、直接在元素上通过事件绑定: Onclick=‘function()’
2、在JavaScript代码中设置对象事件
Document.getElementById(‘click2’).Onclick=function(){}
3.以监听器的形式将事件绑定到元素上(通过绑定触发器的形式)
当我们需要为同一个元素的同一个事件绑定多个操作时,使用第二种方案就不可以了,因为我们的onclick属性只能保存最后设置的值。
需要调用元素的 addEventListener(什么事件,执行的代码, false);
IE、FF兼容:addEventListener()参数1: 需要添加事件元素、参数2: 事件名称、参数3: 事件发生时执行的函数。
if(input.addEventListener){
input.addEventListener(‘focus’,clearC,false);
input.addEventListener(‘focus’,clearx,false);
}else{
input.attachEvent(‘onfocus’,clearC);
input.attachEvent(‘onfocus’,clearX);
}
G、事件对象
当事件发生的时候,自动生成一个event对象(通常获得事件发生的时候,键盘按键的状态、鼠标的状态、发生事件的元素等)
srcElement: 事件源对象
keyCode:按键码
clientX: 鼠标指针的水平坐标
clientY: 鼠标指针的垂直坐标
screenX:
screenY:
var eve = e || window.event; // FF IE
H、事件分类
获得焦点事件(onfocus)
失去焦点事件(onblur)
内容改变事件(onchange)
页面事件:
onload 页面加载完毕
鼠标事件:
onclick() 鼠标单击
ondblclick()鼠标双击
onmouseover() 鼠标移入事件
onmouseout() 鼠标移除事件
onmousemove()鼠标移动事件
onmouseup() 鼠标按键被松开事件
J、键盘事件
Onkeydown 按键被按下
Onkeyup 按键抬起
Onkeypress 按键被按住
表单事件:Onsubmit Onreset
学习总结:
一、HTML中使用JavaScript:
1. 使用<script>JS代码</script>标签:src属性:表示包含要执行代码的外部文件。type属性:text/javascript(可省略)
<script type=“text/javascript”>
alert(‘hello,js’);
</script>
2. 使用事件传入JavaScript代码
<div onclick=“alert(‘hello,js’)”></div>
3. 使用<a href=“javascript:alert(‘hello,js’);”></a>
- javaScript基础
- JAVASCRIPT 基础
- JavaScript基础
- JAVASCRIPT基础
- JavaScript 基础
- javascript基础
- javascript基础
- JavaScript 基础
- JavaScript基础
- javascript基础
- JavaScript基础
- javascript基础
- javascript基础
- Javascript基础
- JavaScript基础
- JavaScript基础
- javascript基础
- javascript基础
- javascript 常用函数归纳
- hdu1002 A + B Problem II(大数相加)
- java线程 返回值-回调
- C# DataTable.NewRow 方法
- solr spellcheck 功能
- javascript基础
- 抽象描述排序算法(不适合初学者)
- Fuzhou Problem 1920 Left Mouse Button
- C# DataSet.AcceptChanges 方法
- 关于Struts2.1.6中配置 constant name="struts.devMode" value="true" 在tomcat启动时报错的问题
- jersey client 发送Post请求 【带参数】
- hdu2054 A == B ?(高精度比较)
- Android数据库的使用
- 一个不错的java的配置文件的设置