小红书学习——JS(不定时更新)
2017-06-19 11:00
190 查看
JS
如果您把值赋给尚未声明的变量,该变量将被自动作为全局变量声明。这条语句:
function func(){ carname="Volvo"; }
将声明一个全局变量 carname,即使它在函数内执行。
DOM事件
拖动事件:
在拖动对象范围上的触发事件 | 描述 |
---|---|
ondragstart | 开始拖动时触发 |
ondrag | 正在拖动时触发 |
ondragend | 完成拖动时触发 |
在释放目标范围上的触发事件 | 描述 |
---|---|
ondragenter | 拖动对象进入目标容器范围内触发 |
ondragover | 拖动对象在目标容器范围内拖动触发 |
ondragleave | 拖动对象离开目标容器 |
ondrop | 释放鼠标键时触发 |
不要创建String 对象,会拖慢执行速度
var x = new String('dasda')
属性:prototype(允许向对象添加属性和方法)、length(返回字符串长度)、constructor(返回创建字符串属性的函数)
正则表达式
方法:
search()搜索匹配子串并返回起始位置
replace()替换匹配子串
match()检查是否符合正则表达式
/正则表达式/.exec(str),返回匹配结果的数组
表达式: / 正则表达式主体 / 修饰符(可选)
修饰符:i(对大小写不敏感)、g(查看所有匹配,而非找到第一个匹配后停止)、m(执行多行匹配)
表达式模式
查找某范围内的字符:
[abs]:查找方括号内的任何字符
[0-9]:查找任何0~9的数字
(x|y):查找匹配任何以|分隔的选项的内容
元字符
\d:查找数字
\s:查找空白字符
\b:匹配单词边界
\uxxx:查找十六进制数字xxx规定的Unicode字符
量词
n+:匹配任何包含至少一个n的字符串
n*:匹配包含0个或多个n的字符串
n?:匹配任何包含0个或1个n的字符串
变量提升
函数和变量的声明都会提升到函数的最顶部
变量可以先使用,再声明
变量的初始化不能被提升
var x = 5
JS的严格模式
在头部加上“use strict”,是ES5的内容
不允许使用未声明的变量
不允许删除对象/变量
var x = 3; "use strict";delete x;
不允许删除函数
不允许变量重名
不允许用转义符
\
不允许
this指向全局对象
JS误区
数组不能用名字作为索引
javascript var arr = []; arr["aaa"] = "AAA"; arr["bbb"] = "BBB"; alert(arr.length); // 输出0 alert(arr[0]); // 输出undefined
上面的数组被重定义为对象,只能用对象的方法来访问
javascript for (var i in arr){ alert(i); // 输出每个arr的属性名 alert(arr[i]); // 输出每个arr的属性值 }
JS表单
获取表单某字段的值:
document.forms["myForms"]["inputName"].value
JSON
JS对象
javascript var person = { firstName:"John", lastName:"Doe", age:50, eyeColor:"blue" };
JSON数组:下面包括了三个对象
javascript var text = {"person:[ {"firstName":"John","lastName":"Doe"}, {"firstName":"John1","lastName":"Doe1"}, {"firstName":"John2","lastName":"Doe2"} ]};
JSON字符串(这里将JSON数组用’ ’括起来,变成字符串)转对象
javascript var text = '{ "sites" : [' + '{ "name":"Runoob" , "url":"www.runoob.com" },' + '{ "name":"Google" , "url":"www.google.com" },' + '{ "name":"Taobao" , "url":"www.taobao.com" } ]}'; // 转对象 var obj = JSON.parse(text); // 用对象的方法把JSON中的值取出来 alert(obj.sites[0].name);
javascript:void(0)可以定义死链接,放在a的href中
JS函数
自调用函数:javascript (function(){ ... })();
Arguments对象
JS函数都有内置的函数对象Arguments,可以获取传入函数的参数数组
“`javascript
x = findMax(1, 123, 500, 115, 44, 88);
function findMax() {
alert(arguments[0]);// 输出1
return arguments[2];// 返回500
}
“`
函数调用
this关键字:指向函数执行的当前对象
可以通过call或者apply来设置this的值
闭包:解决“若用全局变量,则所有脚本不通过调用函数,都可以改变该变量,不好”
是的函数拥有私有变量便变成可能
javascript var name = "The Window"; var forEach = function(){ name:"The Obj", getName:function(){ return function(){ return this.name; }; } }
JS HTML DOM
如需改变 HTML 元素的属性,请使用这个语法:document.getElementById(id).attribute=新属性值
如需改变 HTML 元素的样式,请使用这个语法:
document.getElementById(id).style.property=新样式
相关文章推荐
- js和flash结合的图片幻灯片代码(以后会随着学习不断更新的)
- js学习总结--持续更新(2)
- iOS学习资源大集合----不定时更新
- Github学习笔记-不定时更新
- H.264学习网站及资源(不定时更新)
- JS 学习不断更新
- Hibernate 的学习笔记(温故而知新)— — 不定时更新
- 以后会不定时更新c++ primer第五版的学习笔记,一起成长
- (更新)knockout.js学习——1.8例子——绑定的详细语法
- objective-c 学习系列目录 不定时更新
- 使用js脚本定时更新页面的方法
- (更新)knockout.js学习——1.1例子——绑定的详细语法
- 在这里记录自己学习中遇到的零碎的容易忽略的知识点,不定时总结更新
- 初中数学学习中的一些难点(不定时更新)
- (更新)knockout.js学习——1.5例子
- js学习总结----不断更新(1)
- 待学习的前端知识总结及相关资料 不定时更新
- (更新)knockout.js学习——1.3例子——绑定的详细语法
- 有关Web 安全学习的片段记录(不定时更新)
- iOS 英语学习 翻译官方文档--不定时更新。