JS补充笔记
<script>
函数:
普通函数:
function func(){
}
匿名函数:
setInterval("func()",5000);
setInterval(function(){console.log(123)},5000)
自执行函数(创建函数并且自动执行):
function func() { }
func() (function(arg){console.log(arg);})(1) 序列化:
li=[1,2,3,4]
JSON.stringify(li) 将列表对象转化为字符串
JSON.parse(str) 将字符串转化为列表对象 转义:
客户端(cookie)请求服务器端
将数据转义之后保存到cookie里面 eval
python:
val =eval(表达式)
exec(执行代码)
JavaScript:
eval
时间:
Date类
var d=new Date()
d.getxxx 获取
d.setxxx 设置
作用域:
五句话搞定JavaScript作用域
其他语言:以代码块作为作用域
python中是以函数作为作用域的
javascript:以函数作为作用域(let)
function def() {
if(1==1){var name = 'za'};
console.log(name);
}
def ()
2.函数的作用域在函数未被调用之前,已经创建
3、函数的作用域存在作用域链,并且也是在被调用之前创建
a = '123';
function def(){
var a = '456';
function inner(){
console.log(a);
}
return inner;
}
var ret = def()
ret()
4、函数内部局部变量提前声明
解释的过程中会执行var a;但是不会赋值
function def() {
console.log(a);
var a= '123'
}
javascript面向对象:
不能将类的方法定义在类里面需要写在原型里面,因为每次创建实例都会创建类的方法,所以要把方法写在原型里面。避免浪费内存
类的创建实例:
function Foo(n) {
this.name = n #相当于self.name
}
#Foo的原型:
Foo.prototype={
'sayname':function () {
console.log(this.name)
}
} DOM:
查找
直接查找/间接查找:
var obj = document.getElementById('i1');
obj.innerText 处理全部文本,不包含当前标签内的标签
obj.innerHTML 包含所有,包括里面的标签
赋值:
obj.innerText='xxxx';
obj.innerHTML= '<a href="www.baidu.com"> xxxx</a>';
value (
针对input value获取当前标签中的值)
select 获取选中的value值(selectedIndex)
textarea value获取当前标签中的值
搜索框的实例:
样式的操作:
obj.className
obj.classList:
obj.classList.add()
obj.classList.remove()
obj.style.fontSize = '16px'
obj.style.backgroundColor = '16px'
obj.style.color = '16px'
属性的操作:
obj.setAttribute()
obj.removeAttribute()
obj.attributes
创建标签并增加到html中
1、字符串形式
2、对象的方式
提交表单:
任何标签都可以通过JavaScript提交表单
其他:
console.log()
alert()
var v=confirm(信息) v为true或false 弹出确认框
刷新
localtion.href 获取当前网页
localtion.href='www.xxxxx'重定向,跳转
localtion.reload() 相当于 localtion.href=localtion.href 刷新功能
定时器:
var obj = setInterval(function () {
console.log(123)
},5000)
clearInterval(obj);清除定时器
定时器只执行一次 5秒后执行
setTimeout(function () {
console.log(123)
},5000)
clearTimeout() 清除定时器
事件:
onclick,onblur,onfocus
面试题:行为。样式。结构相分离的页面?
JS CSS HTML
绑定事件的两种方式
a 直接标签绑定 onclick=‘xxxx()’
b 先获取DOM对象,然后进行绑定
document.getElementById('xx').onclick
document.getElementById('xx').onfocus
this,当前触发事件的标签
a.第一种绑定方式
<input id='i1' type='button' onclick='Clickon(this)'>
function Clickon(self) {
// 当前点击的标签
}
b、第二种绑定方式
<input id='i1' type='button'>
document.getElementById('i1').onclick=function () {}
c、第三种绑定方式
var mydiv=document.getElementById('i1')
mydiv.addEventListener('click',function(){console.log(123)},false);
mydiv.addEventListener('click',function(){console.log(456)},false);
一个事件执行两个函数 false是冒泡模式,当两个div重叠是,点击重叠部分false会先执行上层,true会先执行下层 作用域实例:
var myTrs = document.getElementsByTagName('tr');
var len =myTrs.length;
for(var i=0;i<len;i++){
myTrs[i].onmouseover=function () {
// 谁调用的函数this就会指向谁 为什么使用this而不使用myTrs【i】是因为函数作用域的问题,每次遍历函数的名称都会变
this.style.backgroundColor='red'
}
myTrs[i].onmouseout=function () {
// 谁调用的函数this就会指向谁
this.style.backgroundColor=''
}
}
sublime text emmet插件,方便书写代码
</script>
JS补充笔记的更多相关文章
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Vue.js学习笔记(2)vue-router
vue中vue-router的使用:
- js读书笔记
js读书笔记 基本类型的基本函数总结 1. Boolean() 数据类型 转换为true的值 转换为false的值 Boolean true false String 任何非空字符串 "&q ...
- React.js入门笔记
# React.js入门笔记 核心提示 这是本人学习react.js的第一篇入门笔记,估计也会是该系列涵盖内容最多的笔记,主要内容来自英文官方文档的快速上手部分和阮一峰博客教程.当然,还有我自己尝试的 ...
- JS 学习笔记--9---变量-作用域-内存相关
JS 中变量和其它语言中变量最大的区别就是,JS 是松散型语言,决定了它只是在某一个特定时间保存某一特定的值的一个名字而已.由于在定义变量的时候不需要显示规定必须保存某种类型的值,故变量的值以及保存的 ...
- node.js系列笔记之node.js初识《一》
node.js系列笔记之node.js初识<一> 一:环境说明 1.1 Linux系统CentOS 5.8 1.2 nodejs v0.10.15 1.3 nodejs源码下载地址 htt ...
- JS面向对象笔记二
菜单导航,<JS面向对象笔记一>, 参考书籍:阮一峰之<JavaScript标准参考教程> 一.构造函数和new命令 二.this关键字 三.构造函数和new命令 四.构造函 ...
- WebGL three.js学习笔记 使用粒子系统模拟时空隧道(虫洞)
WebGL three.js学习笔记 使用粒子系统模拟时空隧道 本例的运行结果如图: 时空隧道demo演示 Demo地址:https://nsytsqdtn.github.io/demo/sprite ...
- WebGL three.js学习笔记 法向量网格材质MeshNormalMaterial的介绍和创建360度全景天空盒的方法
WebGL学习----Three.js学习笔记(5) 点击查看demo演示 Demo地址:https://nsytsqdtn.github.io/demo/360/360 简单网格材质 MeshNor ...
随机推荐
- 解决Intellij IDEA中项目不能识别yml配置文件
问题:能读取资源路径下的properties配置文件但是不能读yml配置文件 因为无法读取配置yml配置文件,所以不能配置bean,导致项目启动报错. 解决方法: 在VM options中设置虚拟机加 ...
- 前端node面试题之---对比JS和NodeJS的区别
区别: 1.JS运行在浏览器端,用于用户的交互效果,NodeJS运行在服务器端,用于服务器的操作,例如,Web服务器创建,数据库的操作,文件的操作等 2.JS运行在浏览器端,存在多个JS解释器,存在兼 ...
- dede后台系统基本参数空白怎么办?
dede后台系统基本参数空白怎么办? 如图: 解决办法:还原dede_sysconfig表即可 后台 系统-SQL命令行工具,执行如下sql delete table dede_sysconfig ...
- mysql CREATE DATABASE语句 语法
mysql CREATE DATABASE语句 语法 作用:创建数据库. 大理石构件 语法:CREATE DATABASE database_name mysql CREATE DATABASE语句 ...
- ASP:CheckBox获取前台的checked的属性
后台代码: for (int i = 0; i < this.GvCourses.Rows.Count; i++) { CheckBox chb = this.GvCourses.Rows[i] ...
- Comet OJ - Contest #4 D求和 思维题
Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in","r",stdin) ...
- luogu P1037 产生数 x
P1037 产生数 题目描述 给出一个整数 n(n<10^30) 和 k 个变换规则(k<=15). 规则: 一位数可变换成另一个一位数: 规则的右部不能为零. 例如:n=234.有规则( ...
- 【CF1252G】Performance Review(线段树)
题意: n,q<=1e5,a[i],b[i][j]<=1e9,保证能力值互不相同,询问之间保留前面的影响 思路:其实把大于a[1]的看成0,小于的看成1,设第i天小于a[1]的有b[i]个 ...
- Handling Configuration Changes with Fragments
This post addresses a common question that is frequently asked on StackOverflow: What is the best wa ...
- apache配置补充
apache的安装: 分成三种方式: tar包 rpm安装 yum安装. ============ tar包安装 ======================== 下载.tar.gz的安装包 解压和安 ...