一文带你解读​JavaScript的引用类型和函数对象

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.引用类型

相当于Java中的类创建实例过程,比如我要创建个对象,可以这样做:

var ob = new Object();

其实它就是把JavaScript中的数据类型转换为Java中的类来进行操作。

2.函数对象

1).Arguments对象

这是个神奇的对象,无需指明参数就可以访问它,它无处不在,用好了将极大的提高你的工作效率。比如它可以检查函数中有多少个参数:

function aa() {
  console.log(arguments.length);
}


aa("fsdaf",324,42.434,'42342asff');
一文带你解读​JavaScript的引用类型和函数对象

2).Function对象

它可以十分方便的创建函数,并且有多种方法创建函数。

1)).对象实例化创建

var ff= new function(name,age,score,表达式)

2)). 函数关键字创建

function aa() {
  alert(111);
}
function aa(bb,cc) {
  alert(bb,cc);
}

Function有一个Length属性用来计算长度:

function aa() {
  alert(111);
}
aa.length

3).Constructor属性

看到这个长长的东西是不是感到特别陌生,它就是我们的构造函数,我们可以对此判断当前实例是否属于对象。

var aa=new Array()
if(aa.constructor==Array){
    console.log(11)
}
else{
    console.log(22)
}

4).Prototype属性

指对象的原型参数,实例化后的对象是没有Prototype属性的,只有对象本身才有这个属性。利用该属性创建的变量名和值并没有加入到实例对象中,只是创建了,如果你想访问它,可以使用:实例名.constructor.prototype来进行访问。

一文带你解读​JavaScript的引用类型和函数对象

一文带你解读​JavaScript的引用类型和函数对象

从上面可以看出,数组的实例化对象可以创建任意变量并且赋值,但是它的原型却不行,如果是数组本身那么就又可以了。而且要想访问原型的构造函数还得是对象本身,最后得到的结果也就是对象本身。可见虽然原型和构造函数换了个位置,但是意义完全不一样。

5).This 对象

其实就相当于Java中的This,Python 中的Self,可以看出它的重要性,无非就是指向一个实例对象。

一文带你解读​JavaScript的引用类型和函数对象

3.闭包

其实就是嵌套函数。

var aa= 10;
function s(cc,bb) {
  function sa() {
    return cc+bb;
  }
  return sa();
}

总结

这篇文章主要结束了JavaScript的引用类型、函数对象和闭包,下一篇文章继续给大家分享JavaScript知识,敬请期待!

一文带你解读​JavaScript的基本用法

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

JavaScript的基本用法

1.如何使用Js脚本

1).引入Js文件

在头部标签中导入脚本标签并指明脚本文件路径

<head><script src="XXX.js"></script></head>

2).标签中使用

<body><script >javascript 语句</script></body>
<head><script >javascript 语句</script></head>

2.数据类型

JavaScript的数据类型分为:

string
number
boolean
array
object
null
undefined

3.注释

1).单行注释

以“//”开头,后面接注释语句,只能注释一行

2).多行注释

/* 注释语句,可注释多行 */

4.特殊符号

\n 换行
\t 制表符 
\b 空格 
\r 回车 
\f 换页符
\\ 反斜杠 
\' 单引号
\" 双引号
\0 x 八进制代码x表示的字符(n是0到7中的一个八进制数字)
\x x 十六进制代码x表示的字符(n是0到F 中的一个十六进制数字)
\u x 十六进制代码x表示的Unicode字符(n是0到F 中的一个十六进制数字)

5.变量声明

1).Var声明

var ss='fsdf'  外部声明的变量可在全局使用
var ss        也可以不声明值,也不会产生错误,唯一的遗憾是会产生变量提升

2).Const 声明

const ss=123   不存在变量提升,可生成块级作用域 ,常用于声明常量,声明后必须赋值

3).Let 声明

let ss=123   不存在变量提升,可生成块级作用域,常用于声明变量,

6.控制结构语句

1).If ……Else

var aa=12
if(aa>3){console.log(1)}
else{alert(1)}

可以看出与我们的Python语句略有不同。

2).Do…..While

var i=1
do
 {
 i++;
 console.log(i);
 }
while(i<5)

3).While

var i=1
while(i<5){
    i++;
    console.log(i)
}

4).For

for(let i=1;i<6;i++){
    console.log(i)
}

5).For….In…

#打印了document对象的所有方法
    for(y in document)
        {
            console.log(y)
        }

6.Break、Continue

break    立即终止循环
continue 退出当前循环进入下一个循环

7).标签语句

指的是标签后面的语句可由判断结果自行决定什么时候结束

var i=0
label:while(i<10){
    i++;
    if(i==5){
        break label;
}
    else{
        console.log(i)
}
}

8).With语句

相当于Python中的上下文管理器

var aa='fasdffsa'
        with(aa){
            console.log(aa)
        }

9).Switch语句

var aa=[1,2,3]
    switch(aa){
        case 1:console.log(1);
        break;
        case 2:console.log(2);
        break;
        case 3:console.log(3);
        break;
        default:console.log('fas');
}

10).For….of

for(let val of iterable){
console.log(val)
}

11).For each ….. in

var sum = 0;
var obj = {prop1: 5, prop2: 13, prop3: 8};
for each (var item in obj) {
  sum += item;
}
print(sum); // 输出"26",也就是5+13+8的值




obj.forEach(function(val,item,array){
      array[item]=val
})

总结

这篇文章主要结束了JavaScript的导入、数据类型、注释、变量和控制语句。下一篇文章,我们继续介绍JavaScript,敬请期待!

盘点JavaScript中5个常用的对象

大家好,我是IT共享者,人称皮皮。

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

JavaScript对象

在JavaScript中有许多有用的对象,它们可以用来实现很多功能,除了我们之前接触到的,还有以下几种:

Date   日期
RegExp 正则
Error  错误

接下来我们就来具体了解下它们都有哪些用处:

1).Array对象

它就是我们熟知的数组对象了,它可以储存许多值并用下标访问,常见操作如下:

盘点JavaScript中5个常用的对象

2).Boolean对象

返回该对象的源代码。
b.toSource()




把逻辑值转换为字符串,并返回结果。
b.toString()




返回 Boolean 对象的原始值。
b.valueOf()

3).Date对象

这个对象主要对时间的操作,我们可以通过这个对象获取并且设置时间,如图:

盘点JavaScript中5个常用的对象

3).Math对象

这个对象就好比我们Python中的数学模块中的方法一样,两者了解一样即可,如图:

盘点JavaScript中5个常用的对象

4).Number对象

主要就是数字对象的一些操作,比较简单,方法不多,如图:

盘点JavaScript中5个常用的对象

5).String对象

主要是对字符串对象进行操作,比如字符串拼接,分割等,这是我们比较常用的对象,它的用法如下:

盘点JavaScript中5个常用的对象

总结

这篇文章主要介绍了JavaScript的对象知识。下一篇文章,我们继续介绍JavaScript,敬请期待!

一篇文章带你轻松获取女神家庭住址

前言

步入21世纪,我们的日常生活发生了巨大的改变,手机和电脑支配着我们的日常,不知不觉中,网聊开始慢慢逐渐兴起以致于现在成为大势所趋,我们在网上聊天经常会看到一些美女,但是我们一般问别人家庭住址的话肯定是不合适的,因为这会让别人觉得你这个人是不是有病,或者是犯罪分子;于是我们可以另辟蹊径,选择一种稳妥的方式来进行。

一、与女神开始对话

这是你要进行的第一步,如果你连和别人对话的机会都没有,那你基本没希望,如下:

首先要和别人联系,当好友间建立联系后,你就会和它建立网络连接,这个时候会发送和接收大量数据包,而且也会有各种协议,比如TCP UDP ICMP等,但是我们要拿的是TCP,只有知道了TCP你才能知道好友的设备的真正的IP地址,这样才可以准确获取到她的地理位置。

二、获取IP

1.使用系统任务管理器中的监视器

这里我们需要打开资源监视器,如下:

然后只监视QQ的网络信息,如下:

勾选好了后,我们给女神发送一个字节稍微大点的消息,比如图片,那就截个图吧,如下:

这个时候就得到了一些IP地址,满心欢喜的以为其中一个就是好友的设备所处的IP。结果都试了并不是,大失所望。其实这些都是虚假地址。

2.使用系统任务管理器中的监视器

再来看看使用咱们的CMD,我们来使用一个命令”netstat“,这个命令可以监听TCP和UDP的连接,下面来看看:

这里我们再次打开一个窗口,获取当前的网络连接,这里可以获取全部网络连接:

但是我们只需要TCP连接,所以在后面加个 ”-t“即可。

三、使用火绒剑

前两者的方法放在以前是可以获取到QQ好友的IP的,但是现在不行了,于是小编找到了一种好的方法,使用火绒剑安全软件辅助来查找到QQ好友IP。这里我们进入火绒官网,下载火绒剑安全软件。如下:

打开火绒安全,选择安全工具,如下:

点击火绒剑,如下:

这里我们设置监听QQ连接的相关功能,首先找到QQ进程,如下:

设置过滤条件,如下:

设置好后,和女神发语音,开启监控,如下:

下面的111开头的就是女神的真实IP,然后到网上一查,如下:

其实这个数据还是很准的,因为小编用的是大号和小号进行语音通话的,而且这个IP的确就是本人的外网IP,故该种获取IP方法很可靠。

四、总结

小编想在这里提醒大家的是,虽然该种方法可以获取IP,但是不要做坏事哦。

终于有人将MySQL的安装讲明白了

前言

在日常开发中,存储数据的最常用的方式便是数据库了,其中最为著名的便是MySQL数据库,因它简便易于上手而且可扩展性强大,跨平台使得它广为使用,今天我们就来具体聊聊它的安装。

一、安装过程

我们所使用的是MySQL 5.7版本,这个版本算是挺不错的。下面我们来介绍下这个版本的具体安装过程吧。

1.解压安装

因为官网目前下载不了,为了大家安装过程中方便,我们下载一个免安装版mysql,下载好后将这个压缩包文件解压到指定的磁盘下,比如我想解压到E盘的mysql文件夹中。如图:

2.配置环境变量

为了让mysql 可以在任意目录运行,我们可以将mysql的bin目录添加到环境变量,如图:

3.修改配置文件

在mysql目录下创建一个my.ini配置文件,修改配置:

[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir="E:\mysql\mysql-5.7.11-winx64"
# 设置mysql数据库的数据的存放目录
datadir="E:\mysql\mysql-5.7.11-winx64\data"
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

4.安装mysql

以管理员身份运行命令提示符,输入mysqld install命令(注意是mysqld而不是mysql)回车,即可安装MySQL,提示:Service successfully installed,则表示安装成功,如下图所示:

移除服务:mysqld remove

5.启动mysql服务

在命令提示符下执行命令,

启动mysql:net start mysql
停止:net stop mysql

发现启动不了,如图:

这是怎么回事了,哦~原来是因为还没有初始化,那么我们现在来进行初始化,

执行指令:mysqld --initialize-insecure --user=mysql,
mysqld --initialize-insecure:自动生成无密码的root用户,
mysqld --initialize:自动生成带随机密码的root用户,
mysqld --initialize --user=mysql --console:生成随机密码并显示在控制台窗口,

data文件夹不为空是不能执行这个命令的(删掉data文件即可),

执行mysqld –initialize-insecure –user=mysql命令会自动新建data文件夹。执行结果如图:

可以看到执行成功了,再次启动mysql服务,启动成功。如图:

6.进入mysql,修改登陆密码确保安全

第一次进入mysql 是没有密码就可以登陆了,我们可以设置登陆密码,更改root密码,输入:

update mysql.user set password=password("123321") where user = "root";

因为新版mysql数据库下没有password字段,所以需要使用如下命令:

update mysql.user set authentication_string=password('123321') where user='root';
刷新权限:flush privileges;

这是必须的,不然操作没有效果。

也可以这样修改密码:

set password = password('123456');

这样就将root用户的密码设置为了 123456了,下面我们退出mysql再重新进去,顺带说下退出命令:

退出mysql:quit;

接下来在进入mysql,如图:

这样root用户就有了密码,它的密码就是123321.

整个安装过程就完成了,是不是很简单了。

另外,为了提高交互效果,我们还可以一个软件——-sqlyong,它可以和mysql建立链接。安装好了之后是这样的一幅画面:

然后将先前的root用户和密码输入然后点连接即可进入:

这样就大功告成了。

四、总结

这篇文章主要讲解了MySQL数据库的安装,希望对大家的学习有帮助。

一文解读JavaScript中的文档对象(DOM)

大家好,我是IT共享者,人称皮皮。

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.文档对象(DOM)

1).Document对象

这是我们用的最普遍的一个文档对象了,专门用来操作DOM节点时用。

1)).获取元素

document.getElementById()           #通过id查找HTML元素
document.getElementsByName()        #通过name查找HTML元素
document.getElementsByTagName()     #通过标签名查找HTML元素
document.getElementsByClassName()   #通过类名查找HTML元素 
document.querySelector(".h")        #第一个类名为 "h" 的元素
document.querySelectorAll("div.no, div#h") #所有class为"no"或者id为"h"的div元素
document.body          #获取body标签
document.documentElement   #获取html标签

2)).获取网页内容

document.cookie        #网页cookie
document.domain        #文档的域名
document.lastModified  #文档被最后修改的日期和时间
document.referrer      #载入当前文档的文档的URL
document.title         #当前文档的标题
document.URL           #当前文档的URL
document.doctype       #当前文档的doctype
document.baseURI       #当前文档的绝对URI
document.documentMode   #浏览器使用的模式
document.documentURI    #文档的URI
document.implementation #DOM实现
document.inputEncoding  #文档的编码(字符集)
document.readyState     #文档的(加载)状态
document.strictErrorChecking    #是否强制执行错误检查

3)).文档写入

document.write('hello world')   向文档写入文本
document.writeln('hello world') 向文档写入文本并换行

4)).获取集合

document.all        #所有html元素
document.anchors    #所有Anchor引用
document.forms      #所有的表单引用
document.images     #所有的图片引用
document.links      #所有的超链接引用
document.scripts    #所有的脚本引用
document.embeds     #所有的流媒体引用

5)).获取节点

childNodes          #获取子节点的集合 ,返回数组 ,并把换行和空格也当成是节点信息。
children            #获取子节点的集合 ,返回数组   
firstChild          #获取第一个子元素  并把换行和空格也当成是节点信息
firstElementChild   #获取第一个子节点
lastChild           #获取最后一个子节点 并把换行和空格也当成是节点信息
lastElementChild    #获取最后一个子节点
parentNode          #获取父节点
parentElement       #获取父节点(IE)
offsetParent        #获取所有父节点  对应的值是body下的所有节点信息
previousSibling         #获取上一个兄弟节点  匹配字符,包括换行和空格,而不是节点
previousElementSibling  #获取上一个兄弟节点  直接匹配节点
nextSibling             #获取下一个兄弟节点  匹配字符,包括换行和空格,而不是节点
nextElementSibling      #获取下一个兄弟节点  直接匹配节点
ownerDocument           #元素的根节点

这里我们获取到了所有的Div元素,我们可以针对性的获取一个ID下的Div的子元素以及它的兄弟和父,子元素,如下:

6)).创建节点

我们可以自定义节点并添加值,不过要将它添加到文档中去,所以必须添加节点,一般和下方的增加节点配套使用。

document.createElement(标签)  #创建HTML元素
document.createTextNode(文本) #给文档添加文本
document.createComment(文本)  #创建一个注释节点
document.createDocumentFragment() #创建文档粉碎节点

7)).增加节点

appendChild(节点) #节点被添加到元素的末尾
insertBefore(a,b) #a节点会插入b节点的前面

8)).删除节点

removeChild(节点名)  #被移除的节点仍在文档中,只是文档中已没有其位置了

9)).替换节点

replaceChild(插入的节点,被替换的节点)

10)).复制节点

a.cloneChild() #复制a节点,复制出来的节点作为返回值为true时,则a元素后代也一并复制。否则,仅复制a元素本身

11)).节点属性

#节点类型 nodeType 有三种情况
#1.元素节点  2.属性节点  3.文本节点


#节点名称 nodeName 


#节点值 nodeValue 
#元素节点没节点值,为null 
#文本节点的节点值就是文本
#属性节点的节点值就是该属性值


#节点属性获取
a.width
a['width']
a.gerAttribute(属性名)  返回指定的属性值
a.gerAttributeNode(属性名) 返回指定的属性节点
节点属性设置
a.width=400
a['width']=400
a.attributes['width']=400
a.setAttribute('width',400) 添加指定的属性
a.setAttributeNode(b) 添加指定的属性节点


#节点属性删除
a.removeChild(子节点)    从元素中移除子节点
a.removeAttribute(属性)  从元素中移除指定属性
a.removeAttributeNode(属性) 移除指定的属性节点,并返回被移除的节点


a.id 获取当前元素的id
a.className  获取当前元素的class
a.classList  获取当前元素的class列表


a.accessKey='w'    设置或返回元素的快捷键
a.namespaceURI     返回指定节点的命名空间的 URI
a.dir              设置或返回元素的内容是否可编辑
a.normalize()      合并元素中相邻的文本节点,并移除空的文本节点
a.tabIndex='3'     设置或返回元素的tab键控制次序
a.tagName          返回元素的标签名
a.textContent      设置或返回节点及其子代的文本内容
a.title            设置或返回元素的标题属性
a.item(num)        返回节点列表中位于指定下标的节点
a.length           返回节点列表中的节点数

12)).获取元素文本

a.innerHTML  获取或者设置对象内的HTML
a.innerText  获取或者设置对象内的文本
a.outerHTML  获取或者设置对象外的HTML
a.outerText  获取或者设置对象外的文本
a.value      获取或者设置表单元素的值

总结

这篇文章主要介绍了JavaScript的文档对象。下一篇文章,我们继续介绍JavaScript,敬请期待!

一文解读JavaScript事件对象和表单对象

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.事件对象(Event)

1).事件对象常量

bubbles         事件是否是起泡事件类型 
cancelable      事件是否可确定可取消的默认动作
currentTarget   事件监听器触发该事件的元素 
eventPhase      事件传播的当前阶段 
target          触发此事件的元素(事件的目标节点),srcElement(IE)
timeStamp       事件生成的日期和时间
type            当前Event对象表示的事件的名称 
initEvent()     初始化新创建的 Event 对象的属性
preventDefault() 不执行默认动作
stopPropagation()   停止冒泡 cancelBubble
x,y             元素的 x 坐标和 y 坐标
returnValue     设置或获取事件的返回值
fromElement  在IE中用于mouseover和mouseout 事件,可以引用移出鼠标的元素。
toElement  在IE中用于mouseover和mouseout 事件,该属性引用移入鼠标的元素。
returnValue 设置或获取事件的返回值
keyCode(IE) 键盘码 which()  charCode
offsetX,offsetY 事件在源元素的中的x坐标和y坐标。

这在后面的其它操作中我都有举例子,大家可以仔细看看。

2).键盘鼠标事件

altKey          判断"ALT" 是否被按下 
button          判断哪个鼠标按钮被点击 
clientX         判断鼠标指针的水平坐标
clientY         判断鼠标指针的垂直坐标
ctrlKey         判断"CTRL" 键是否被按下
keyIdentifier   按键的标识符  
keyLocation     按键在设备上的位置 
metaKey         判断"meta" 键是否被按下
relatedTarget   与事件的目标节点相关的节点
screenX         判断鼠标指针的水平坐标
screenY         判断鼠标指针的垂直坐标
shiftKey        判断"SHIFT" 键是否被按下

这个在后面也会提到,比如获取鼠标坐标:

2.表单对象

1).Form对象

document.forms['表单名']['text'].value #获取表单中的文本框的值
acceptCharset       服务器字符集 
action              设置或返回表单的action
enctype             设置或返回表单用来编码内容的MIME类型 
length              返回表单中的元素数目
method              设置或返回将数据发送到服务器的 HTTP 方法
name                设置或返回表单的名称
target              设置或返回表单提交结果的Frame或Window

2).Button对象(submit,hidden与它方法差不多)

b.accessKey                 设置或返回访问按钮的快捷键
b.alt                       设置或返回当浏览器无法显示按钮时供显示的替代文本 
b.disabled=true|false       设置或返回是否禁用按钮
b.form                      返回对包含该按钮的表单对象的引用
b.id                        设置或返回按钮的 id
b.name                      设置或返回按钮的名称 
b.tabIndex='3'              设置或返回按钮的 tab 键控制次序 
b.type                      返回按钮的表单元素类型 
b.value                     设置或返回在按钮上显示的文本

3).Checkbox 对象(Radio与它方法差不多)

和上面的对象差不多,唯一不同的便是多了一个默认值选中值:“defaultChecked”。

4).Select 对象

s.options  返回下拉列表数组
s.selectedIndex=num    设置或返回下拉列表中被选选项的索引号
s.multiple=true|false  设置或返回是否可有多个选项被选中
s.size                 设置或返回下拉列表中一次显示显示的选项数
s.add()       向下拉列表添加一个选项
s.remove()    从下拉列表中删除一个选项

总结

这篇文章主要介绍了JavaScript的事件对象和表单对象。下一篇文章,我们继续介绍JavaScript,敬请期待!

一文解读JavaScript中的事件知识

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.事件

1).鼠标事件

onclick     #鼠标单击  
ondblclick  #双击鼠标
onmousedown #鼠标按钮被按下。
onmousemove #鼠标被移动。
onmouseover #鼠标移到某元素之上。
onmouseout  #鼠标从某元素移开。
onmouseup   #鼠标按键被松开。

2).键盘事件

onkeydown #按键被按下
onkeypress #按键被按下并松开
onkeyup #按键被松开

3)框架事件

onabort 图像的加载被中断 
onerror 在加载文档或图像时发生错误
onload  页面或图像完成加载  
onresize 窗口或框架被重新调整大小
onscroll 滚动事件
onunload 退出页面

可以看到一会儿就滚动了这么多下。

4).表单对象

onblur 元素失去焦点 
onchange 文本域的内容被改变
onfocus 元素获得焦点
onreset 重置按钮
onselect 文本选中
onsubmit 确认提交

总结

这篇文章主要结束了JavaScript的事件知识。下一篇文章,我们继续介绍JavaScript,敬请期待!

盘点 JavaScript 中那些进阶操作知识(下篇)

相信做网站对 JavaScript 再熟悉不过了,它是一门脚本语言,不同于 Python 的是,它是一门浏览器脚本语言,而 Python 则是服务器脚本语言,我们不光要会 Python,还要会 JavaScript,因为它对做网页方面是有很大作用的。

大家好,我是 IT 共享者,人称皮皮。上篇文章给大家分享了盘点 JavaScript 中那些进阶操作知识(上篇),这篇文章继续来看看趴!

前言

相信做网站对 JavaScript 再熟悉不过了,它是一门脚本语言,不同于 Python 的是,它是一门浏览器脚本语言,而 Python 则是服务器脚本语言,我们不光要会 Python,还要会 JavaScript,因为它对做网页方面是有很大作用的。

1.Javascript 刷新页面

history.go(0) 
location.reload() 
location=location 
location.assign(location) 
document.execCommand('Refresh') 
window.navigate(location) 
location.replace(location) 
document.URL=location.href

2.Js 浏览器兼容问题

1).浏览器事件监听

function addEventhandler(target,type,fn,cap){
            if(target.addEventListener)               /*添加监听事件*/
              {       
                target.addEventListener(type,fn,cap)
                }
            else{
                 target.attachEvent('on'+type,fn)  /*IE 添加监听事件*/
               }
          }
       function removeEventhandler(target,type,fn,cap){
            if(target.removeEventListener)            /*删除监听事件*/
             {
                target.removeEventListener(type,fn,cap)
                }
            else{
                 target.detachEvent('on'+type,fn)    /*IE 删除监听事件*/
               }
          }

2).鼠标键判断

function bu(event)
{
var bt= window.button || event.button;
if (bt==2)
  {
  x=event.clientX
  y=event.clientY   
  alert("您点击了鼠标右键!坐标为:"+x+','+y)
  }
else if(bt==0)
  {
    a=event.screenX
    b=event.screenY
  alert("您点击了鼠标左键!坐标为:"+a+','+b)
  }
else if(bt==1)
  {
  alert("您点击了鼠标中键!");
  }
}

3).判断是否按下某键

function k(event)
{
var ke=event.keyCode || event.which
if(event.shiftKey==1)
  {
  alert('您点击了 shift');
  }
 alert(ke)alert(event.type)
}

4).网页内容节点兼容性

1)).网页可视区域宽高

var w=document.body.offsetWidth|| document.documentElement.clientWidth|| document.body.clientWidth;
var h=document.body.offsetHeight|| document.documentElement.clientHeight || document.body.clientHeight;

2)).窗体宽度高度 比可视区域要大

window.innerHeight - 浏览器窗口的内高度(以像素计) 
window.innerWidth - 浏览器窗口的内宽度(以像素计)

3)).页面滚动条距离顶部的距离

var t=document.documentElement.scrollTop || document.body.scrollTop

4)).页面滚动条距离左边的距离

var s=document.documentElement.scrollLeft || document.body.scrollLeft

5)).元素到浏览器边缘的距离

  function off(o){   #元素内容距离浏览器边框的距离(含边框)var l=0,r=0;
        while(o){
            l+=o.offsetLeft+o.clientLeft;
            r+=o.offsetTop+o.clientTop;
            o=o.offsetParent;
        }
        return {left:l,top:r};
    }

6)).获取滚动条高度

// 滚动条的高度
function getScrollTop() {
var scrollTop = 0;
if (document.documentElement && document.documentElement.scrollTop) {
        scrollTop = document.documentElement.scrollTop;
    }
else if (document.body) {
        scrollTop = document.body.scrollTop;
    }
return scrollTop;
}

7)).DOM 节点操作

function next(o){//获取下一个兄弟节点 if (o.nextElementSibling) {
            return o.nextElementSibling;
        } else{
            return o.nextSibling;
        };
    }
    function pre(o){//获取上一个兄弟节点 if (o.previousElementSibling) {
            return o.previousElementSibling;
        } else{
            return o.previousSibling;
        };
    }
    function first(o){//获取第一个子节点 if (o.firstElementChild) {
            return o.firstElementChild;//非 IE678 支持
        } else{
            return o.firstChild;//IE678 支持
        };
    }
    function last(o){//获取最后一个子节点 if (o.lastElementChild) {
            return o.lastElementChild;//非 IE678 支持
        } else{
            return o.lastChild;//IE678 支持
        };
    }

8)).窗口的宽高

document.body.scrollWidth||document.docuemntElement.scrollWidth;//整个网页的宽
document.body.scrollHeight||document.docuemntElement.scrollHeight;//整个网页的高

9)).屏幕分辨率的宽高

window.screen.height;//屏幕分辨率的高
window.screen.width;//屏幕分辨率的宽

10)).坐标

window.screenLeft;//x 坐标
window.screenX;//X 坐标
window.screenTop;//y 坐标
window.screenY;//y 坐标

11)).屏幕可用工作区宽高

window.screen.availHeight 
window.screen.availWidth

5).事件源获取

e.target || e.srcElement

6).行外样式

funtion getStyle(obj,name){
   if(obj.currentStyle){
      //IE
    return obj.currentStyle[name];
    }else{
    //Chrom,FF
   return getComputedStyle(obj,false)[name];
      }
 }

7).阻止事件冒泡函数封装

function pre(event){

           var e = event || window.event;

           if(e.stopPropagation){   // 通用方式阻止冒泡行为

               e.stopPropagation();

           }else{    //IE 浏览器

               event.cancelBubble = true;

           }

8).阻止浏览器默认行为(例如点击右键出来菜单栏)

function stop(event) {

     var e = event || window.event;

     if (e.preventDefault){

         e.preventDefault();   // 标准浏览器

     }else{

         e.returnValue = false; // IE 浏览器

     }

}

3.严格模式

"use strict"

4.判断变量类型

typeof  variable
instance  instanceof  object
instance.constructor== object
Object.prototype.toString.call(instance)

5.下载服务器端文件

<a href="http://somehost/somefile.zip" download="myfile.zip">Download file</a>

总结

这篇文章主要介绍了 JavaScript 的进阶操作命令!希望对大家的学习有所帮助。


人生苦短,我用Python!

盘点JavaScript中那些进阶操作知识(上篇)

前言

相信做网站对JavaScript再熟悉不过了,它是一门脚本语言,不同于Python的是,它是一门浏览器脚本语言,而Python则是服务器脚本语言,我们不光要会Python,还要会JavaScript,因为它对做网页方面是有很大作用的。

1.进阶操作

这里列举了一些小编以前经常用到的一些例子以及一些经验,由于篇幅受限,这里我将会把部分执行结果的输出直接输入到代码下面。

1).浏览器输入

prompt('请输入') 返回一个字符串变量

2).浏览器输出

document.write('我被输出了') 返回一个字符串

3).浏览器弹框

alert('我是弹框')  返回一个字符串

4).浏览器交互

confirm("是否进入"); 返回一个比尔类型的值

5).控制台打印结果

console.log('显示在控制台的结果')

6).类型检查

typeof ss
ss instanceof string

7).转换为字符串

var ff=123
ff.toString()

8).转换为数字

parseInt(‘231fasd’) -->231  isNumeric 用来判断是否是数字
parseInt('df',num) --> num介于2~36之间,若省略则为10,若‘0x’开头,则为16,若小于2或大于36则为NAN
parseFloat('10') -->无法转换为数字将返回NaN,可通过isNan来判断是否为NaN

9).转换为原始对象

var ff=123
ff.ValueOf()

10).编解码函数

1))字符串编解码

escape(string)    # 编码
unescape(string)   #解码

2))URL编解码

encodeURI(URIstring)  #编码
decodeURI(URIstring)  #解码
encodeURIComponent(URIstring)   #把字符串编码为 URI 组件
decodeURIComponent(URIstring)   #解码一个编码的 URI 组件

11).Eval

可把里面的字符串当做Js代码来执行,犹如Python中的Eval。

eval("alert('fasd')")

12).Call

能够使用属于另一个对象的方法,可传多个参数,是经典的对象冒充方法。

function ss(a,b) {
    alert(a + this.val + b);
};
var o= new Object();
o.val = "123";
ss.call(o, "I am", "years old.");


output:
I am 123 years old

13).Apply

与Call差不多,前面是对象但是它后面的参数是一个数组。

function ss(a,b) {
    alert(a + this.val + b);
};
var o= new Object();
o.val = "123";
ss.apply(o, new Array("I am", "years old"));

14).Caller

返回一个对函数的引用,该函数调用了当前函数,caller 属性只有在函数执行时才有定义。

function aa() {
    if (aa.caller) {
       console.log(aa.caller);   
    } else {
        console.log("111");
     }
}
aa()
output: 111

15).Callee

返回正被执行的 Function 对象,表示对函数对象本身的引用,一般用在递归。

function ff(x){
    if(x==1)
{
        return 1;
}
    else{
        return x+arguments.callee(x-1)
}
}
ff(3);
output:6

总结

这篇文章主要介绍了JavaScript的进阶操作知识。下一篇文章,我们继续介绍JavaScript,敬请期待!