继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

javascript的一些理解

LLYI
关注TA
已关注
手记 1
粉丝 2
获赞 3

JS 全称javascript。是一门网页客户端脚本语言。JS可以让网页动起来。
JS 有四大选择器:
1、ID选择器
2、类选择器
3、Name选择器
4、标签选择器

JS 中一个变量定义可以用: var 完成。 注意:JS是弱语言编译器,所以JS很多语法是不会报错的。

JS中有4大类型:
1、number : 整型、浮点型等
2、String : 字符串
3、Object : 数组、键值对、对象等。
4、undefined : 没有初始值,或者获取不到值。

NaN : 当强制转换成某个值 转化不了的时候出现 NaN。
typeof 表示获取数据类型

JS中有三大输出:
1、alert 提示框 警告框
2、confirm 确认框
3、prompt 输入框

JS标准调试:
1、console.log()

JS 强制转换:
1、parseInt 强制转换成整型
2、parseFloat 强制转换浮点型

JS 运算符:
1、+ - * /
注意:当出现+的时候,如果是字符串和任一类型都会起到连接符的作用。

JS 函数:function
定义函数:
function 函数名( 输入参数(形参) ){
return 返回值;
}
调用函数:
函数名( 输入参数(实参) );

注意:在一般JS脚本中,函数一般定义在对象中,起到封装的效果。因为写法可以如下:
var person = {
"sing" : function(){
},
"eat" : function(){
},
"sleep" : function(){
}
}
调用对象行为:
person.sing person.eat person.sleep

JS 函数作用域:JS中函数作用域是特殊的。因此在编程过程需要格外注意。
function test(){
a = 10;
}
注意:以上变量a 没有被定义,但是在JS不会报错,会自动识别逐步扩大范围找该变量。
从 局部变量 -> 局部输入参数 -> 外层变量 -> 全局变量
因为在a = 10的情况下,如果没有定义在var 初始值。那么JS默认这个a变量在全局定义了
一次初始值。

function test1( b ){
b = 10;
}
注意:因为在输入参数中,有一个参数为b。那么b=10就找到了这个输入参数。不会再去外面查找该变量。

JS 闭包:
JS 闭包是为了解决函数作用域而诞生的。它具有可以设置函数间的变量与变量不会被回收等特点:
1、嵌套函数
2、内层函数可以使用外层函数的变量
3、垃圾不易被回收

function test(){
var i = 10;
function test1(){
i++;
return i;
}
}

var tmp = test();
tmp(); //11
tmp(); //12

JS 匿名函数:所谓匿名就是没有名字的函数。
(function( i ){
alert(i);
})( 10 );

JS Bom:浏览器对象

Bom对象,顶层对象关键词就是window。又因为所有顶层都是window,那么window在很使用地方都是可以省略的。

例如:
var a = 10;
function test(){
alert( self.a ); //window.a
}

Bom 子对象: location / history / navigator / frames / screen / document

screen:
1、window.innerHeight: 浏览器高。
2、window.innerWidth: 浏览器宽。
3、window.screen.width: 屏幕宽。
4、window.screen.height: 屏幕高。
5、window.screen.availWidth: 屏幕可用宽。
6、window.screen.availHeight: 屏幕可用高。

通过浏览器设置相关具体跳转: location

1、host 返回服务器名称和端口号(如果有).
2、hostname 返回不带端口号服务器名称
3、href 返回/设置当前页面的URL
4、pathname 返回url中的目录或者文件名
5、port 返回url中的端口号
6、protocol 返回页面使用的协议。通常是http:或者https协议。
7、search 返回url的查询字符串。这个字符串通常以?开头
如:https://www.baidu.com?action=123;
返回的就是?action=123

获取浏览器本身信息:navigator
1、appCodeName: 浏览器本身的名称,通常都是Mozilla。
2、appName: 完整的浏览器名称。
3、appVersion: 浏览器版本,一般不与实际的浏览版本对应。
4、cookieEnabled: 判断是否能够使用cookie。
5、javaEnabled: 判断浏览器是否启用java。
6、onLine:表示浏览器是否连接了因特网(通过没有实际意义)
7、platform: 操作系统
8、plugins 浏览器安装的插件,注意返回的是数组。
9、userAgent 最常用的属性。

定时器:定时器一般用于间隔执行。

1、setTimeout 间隔一定时间后执行,执行一次。

setTimeout( function(){

}, 1000 ); //注意:后面的1000 表示为1000毫秒

setTimeout( "run()", 1000 );
function run(){
}

2、setInterval 间隔一定时间后执行,执行多次。

setInterval( function(){
},1000);

setInterval( "run()", 1000 );
function run(){
}

3、clearInterval( 定时器名称 ) 停止定时器

JS Dom: 浏览器文本对象。关键词是document。

Dom三大选择器:
1、ID选择器: document.getElementById("XXX")
2、类选择器:document.getElementsByClassName("XXX")
3、Name选择器:document.getElementsByName("XXX")
4、标签选择器:document.getElementsByTagName("XXX")

注意:类、Name、标签选择器返回的都是数组,因此需要逐个取出。

Dom设置/获取属性值:
1、setAttribute 设置属性 setAttribute("属性名","属性值")
2、getAttribute 获取属性 getAttribute("属性名")

Dom树:
Dom
head body
title meta h1....

1、Dom是一切元素的根节点。
2、head是title和meta的父节点
3、head的子节点是title和meta
4、title和meta是兄弟节点
注意title 和 h1没有任何关系。如果通过title找到h1,那么需要通过title找到head
再找到body再找到h1

1、childsNode 返回所有的子节点。
2、firstElementChild 返回第一个子节点。
3、lastElementChild 返回最后一个子节点。
4、nextElementSibling 返回下一个兄弟节点。
5、previousElementSibling 返回上一个兄弟节点。
6、parentElement 返回父节点。
注意:节点在很多情况下需要做遍历处理,因此需要用到length。

Dom 事件:
1、内嵌型事件
2、script头部尾部的事件
3、全局事件

事件种类:
1、onclick 点击事件
2、onblur 失焦事件
3、onfocus 聚焦事件
4、onmouseenter 鼠标进入事件
5、onmouseout 鼠标移出事件
6、onkeyup 键盘弹起事件
7、onkeydown 键盘按下事件
8、oninput 输入框输入事件
9、onchange 当下拉菜单等值做出改变的时候调用

注意:键盘事件,每次返回有两个参数,其中keyCode 表示键盘标识码,而其中keyCode=13表示回车键,keyCode = 37,38,39,40 表示方向键左上右下

调用事件方式:
1、<input type="button" onclick="test(this)"/>
注意:其中this表示点击的当前对象。
2、针对于某一个控件监听
<script>
document.getElementById("xxx").onclick = function(){
}
</script>
3、针对于全局控件监听
<script>
document.onclick = function(){
}
</script>

事件动态注册:因为某些控件需要在动态创建过后才能注册发生,因此需要动态注册事件。

动态注册:控件
document.createElement() //利用动态的方式创建一个标签元素,返回的是一个标签而不是一个字符串。

动态注册:事件
document.addEventListener() //利用动态的方式注册一个事件。

动态移除:控件
document.removeChild() //移除一个子元素
document.removeNodes() //移除节点

动态移除:事件
document.removeEventListener() //动态移除一个事件

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP