Java学习笔记(十五):JavaScript (JS)

写在前面:

学习网站:https://www.w3school.com.cn

<script  src='url' ></script>

类型
number、string、boolean、null、undefined
typeof(xx)、===

true 1,false 0

false:0、NaN、空字符串、null、undefined

true:其它数字和字符串、对象

JS对象
Math random、ceil、floor、round、PI
Date toLoaclString、getTime、getDay
Function function fun(){}、arguments、length
Array =new Array()、=[ ]、length、join、sort、reverse、concat、push、pop
RegExp [] \d \w ? * + {m,n} ^ $ 、=new RegExp("xxx")、=/ xxx /、test
Globle praseInt、isNaN、eval、encodeURI、decodeURI、encodeURIComponent、decodeURIComponent
String  
Boolean  
Number  
DOM对象
Document getElementById、getElementsByTagName、(ClassNAme、Name)
Element setAttribute、removeAttribute
Attribute  
Text  
Comment  
Node parentNode、appendChild、removeChild、replaceChild
BOM对象
Window

alert、confirm、prompt、open(url)、close、setTimeout、clearTimeout、setInterval、clearInterval

Location

reload、href

History back、forward、go(n)

事件:事件源.事件=function(event){ 监听器代码 }


1. 一些基本信息

是客户端脚本语言(脚本语言:不需要编译,可以直接被浏览器解析执行)

运行在浏览器中,每个浏览器都有JS解析引擎

让用户和页面的交互更强,控制html元素,让页面有动态效果

JavaScript = ECMAScript( 客户端脚本语言标准) + JavaScript自己特有的内容( BOM+DOM )

2. ECMAScript-----基础语法

在html中的位置

<script> 标签内,可以在任意位置 影响执行顺序,推荐head的最后 或者 body的最后

引入 .js 文件:<script src='url' ></script>

一些规则

语句分号结尾,一行只有一条时 可省

定义变量 var:局部变量(省略var:全局变量)

注释

//

/*    */

数据类型

原始数据类型:number(整数/小数/NaN)、string(单双引号均可)、boolean、null、undefined(没有初始化值)

引用数据类型

(补充Java:基本数据类型、引用数据类型)

typeof (变量名) :变量的类型;null输出的变量类型时object

变量

一小块存储数据的内存空间

JS是弱类型的语言,申请内存空间时不指定类型

var 变量名=初始化值

运算符

+ 可以时加号,也可以是正号

=== 全等于:比较之前先判断类型,类型不同的直接不等

JS的比较:类型相同的正常比较(字符串按照字典顺序);类型不同的先类型转换再比较(string会先转为number)

JS的运算:类型不对时,也会先自动进行类型转换                 

类型转换

string转number:不是数字的转为NaN

boolean转number:true 1 ;false 0

number转boolean:0 false;非0 true;NaN false

string转boolean:空串 false;其它 true

null undefined转boolean:false

对象 转boolean:true

(补充:防止空指针可以写成:if(obj){ }  )

流程控制

switch语句可以接收人意类型

(补充java中switch可以接收的类型:byte、short、int、char、枚举、String)

 

3. ECMAScript-----JS对象

基本对象

Boolean、String、Number、Array、Date、Math、RegExp、Function、Global

Function对象(方法)

定义方法:var fun=new function(参数列表, 方法体)---不推荐

                    function  fun(参数){ 方法体 }

                    var fun=function(参数){ 方法体 }

属性:length 形参个数

方法中有个内置对象 arguments数组,封装了所有参数,所以方法定义可以没有参数列表

方法调用只跟方法名有关,与参数无关;两个方法名相同时,会覆盖

 

Array对象

定义数组:var arr=new Array( 元素列表/ 默认长度 )    -----一个值时表示默认长度(空也可以)

                   var arr=[ 元素列表 ]

特点:元素类型可变、长度可变(一个数组内可以有多个类型)

属性:length

方法:join('符号')   拼接成字符串;不指定符号时,默认逗号

           push(xx, xx, xx)   添加元素( pop() 删除最后一个元素 )

           sort() 排序、reverse() 反向、concat(arr2) 连接数组

 

Date对象

var date=new Date();

方法:toLocalString() 返回当地时间表示格式(年/月/日)

           getDay()、getMonth()、getTime()毫秒值

 

Math对象

Math.方法()

属性:PI 圆周率

方法:random() [0,1)的随机数、ceil 向上取整、floor 向下取整、round 四舍五入

 

RegExp 正则(字符串的组成规则)

正则通用规则:https://blog.csdn.net/poppy_rain/article/details/98380789

创建:var reg=new RegExp("正则表达式")   -----注意反斜杠需要转义( \\ )

            var reg=/ 正则表达式 /

方法:test(参数)   验证是否符合正则;返回boolean

 

Global 全局对象

封装的方法调用时不用写对象名,直接写方法名

encodeURI(xx)   对xx汉字进行url编码(%字节%字节)------decodeURI解码

encodeURIComponent(xx)   编码的字符更多(把符号也编码了)----decodeURIComponent

praseInt(xx)  字符串转为数字(逐一判断每个字符是不是数字,直到不是数字,将前面的转为数字;没有数字转为NaN)

isNaN(xx)   是不是NaN(注意:NaN不等于NaN,所以要用isNaN来判断)

eval(xx)   将字符串转为JS脚本执行

 

4. DOM:文档对象模型(树形)

基础信息

控制HTML文档内容

获取页面标签对象:var name=document.getElementById("id值")

设置标签属性值:a.属性名="属性值"

                      例:name.clasName="xxx"、name.style.fontSize="20px"、name.innerHTML 设置/获取标签体内容

 

w3c DOM:核心DOM、XML DOM、HTML DOM

核心DOM 对象:Document文档、Element元素、Attribute属性、Text文本、Comment注释、Node节点(前五个的父对象)

 

document对象

用window创建,简写:document

方法--创建其它对象:createAttribute、createElement、createComment、createTextNode(值)

方法--获取元素对象:getElementById

                                      getElementsByTagName、getElementsByClassName、getElementsByName

 

element对象

通过document获取和创建

方法:setAttribute(属性名, 属性值)  设置属性 、removeAttribute(属性名)  删除属性

 

node对象

属性:parentNode 当前节点的父节点

方法:appendChild(字节点) 添加字节点、removeChild(字节点) 删除、replaceChild 替换

 

5. BOM:将浏览器的各个部分封装成对象

window 窗口

调用方法时:不需要创建,直接使用,window可以省略-------方法名()

三种弹出框:alert 警告、confirm 确认取消, 确认true 取消false、prompt 用户输入, 返回用户输入值

两种开关方法:open(url) 打开新窗口, 可无参, 返回window对象、close 关闭窗口

四种定时器方法:setTimeout( 方法, 毫秒值 )   只执行一次, xx毫秒后执行xx; 返回值id  -------clearTimeout(id) 取消

               setInterval 循环执行------clearInterval 取消

属性:获取其它BOM对象、获取DOM对象(document)

 

location 地址栏

方法:reload 刷新

属性:href  设置(赋值) / 获取url

 

history 历史记录(当前用户、当前页面)

属性:length 个数

方法:back 后退、forward 前进、go(n) 前往历史记录中的具体页面, 正数 前进n个, 负数 后退n个

 

6. 事件

事件:操作

如单击、双击等

onclick单击、ondblclick双击

onfocus获得焦点、onblur失去焦点

onmousedown鼠标按下、...up松开、...move移动、...over上、...out移开

onkeydown键盘按下、...up松开、...press按下并松开

onchange、onselect 级联下拉时用

onsubmit确认、onreset重置、onload加载完

事件源:组件

如按钮、文本框等

监听器:代码

方法里的this,指发生这个事件的事件源(当前标签的对象)

注册监听:将事件、事件源、监听器绑定到一起

当事件源上发生了某个事件,则执行监听器代码

语法:

事件源.事件=function(event){   监听器代码   }

event.button  鼠标哪个键被点击了(左键:0)

event.keyCode   键盘的按键(回车:13)

window.οnlοad=function(){  页面加载完执行代码  }

写到属性中:οnclick='return true'   或者   οnclick='return fun()'  事件源不需要返回值时不写return

 

 

发布了97 篇原创文章 · 获赞 52 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/poppy_rain/article/details/98368526
今日推荐