js知识点乱炖
修改属性 元素.style.样式=值 document.getElementById('box').style.width='200px';
属性操作方式
1、. 的
元素.属性名
如果属性是单一属性,用点操作符是取不到的,而且还会报错:点操作属性的时候,后面只能跟真正的属性名称,不能跟变量名
如果想用点操作符去获取带横杠的属性,那首先要把横杠去掉,然后把横杠后面的第一个字母大写
2、[] 的
如果属性中带横杠,用[]的方式去操作属性:[]操作属性的时候,里面可以放属性名称与变量名,如果放的时属性名,那要加引号,如果放的是变量名,那不需要加引号
属性 :元素身上所具有的一些特征
1、系统自带的属性
* type、id、style、value、src
2、自己添加的属性 btn.kaivon='名字';
* 自定义属性,系统当中是没有的,我们自己添加的
* 系统自带的属性,满足不了我们的需求,给一个自己添加的属性
inputs[i].index=i; //给每个按钮添加一个自定义属性,存的是它们对应的索引值
表单的值:元素.value
获取属性class:用元素.className
获取到是一个标签对里的所有内容(包括子标签对):元素,innerHTML
地址:href(连接的地址) 和src(图片的地址):href与src取到的是绝对地址,不是属性里的值;切记不要拿href与src取到的值去做判断
如果元素没有加载完,js获取的对象就为null 所以ji代码要放在window.onload=function(){}里
函数的定义
function 函数名(参数){
//在这里就可以使用这个参数
//这里放的就是要重复利用的代码
}
函数调用 函数名(参数);
函数表达式:
var 变量=function(参数){
要执行的代码
}
函数表达式调用: 变量(参数)
匿名函数 没有名字的函数
* 匿名函数不能直接声明,会报错
*
* 匿名函数怎么用
* 当匿名函数是以被赋值的形式所出现,并且它是被事件调用
事件 window.onload 赋值 =
事件=匿名函数
window.onload=function (){
alert(1);
}
break:停止剩下的所有循环
continue:停止本次循环
return:返回,让函数停止执行,它只能用在函数内
函数参数: 函数外面传到函数里面的数据,从而函数里面能使用这个数据;多个的话就用逗号隔开
arguments对象:代表了所有的实参集合(类数组) 这个集合还有一个length,代表了实参的个数 它只能在函数内使用
函数运算结果返回值:return
有就返回return结果,并且return;后的代码不再执行,函数就此结束;没有就返回undefined;
作用域 全局变量是window下的属性,在函数外面声明
局部变量与局部函数只能在声明它们的地方用,在其它的地方是用不到的
函数(函数声明,不是函数调用)可以嵌套的,嵌套的函数(局部函数)可以访问父函数里的内容
子对象会一级一级地向上寻找所有父对象的变量。所以,父对象的所有变量,对子对象都是可见的,反之则不成立
js会把函数或者变量提前解析一下
步骤
1、先找var 、function(函数声明)关键字以及参数
2、如果找到了var(声明的变量,参数),会给他赋一个undefined。如果找到了function,那它会把整个函数都拿过来
3、把找到的东西,放到对应的作用域的最开始的位置
4、逐行执行代码
备注:函数表达式,不会被预解析,所以只能先声明再调用,不能把调用放在声明的前面(不然就报错)
生命周期
变量或函数在相应的作用域里存在的时间
函数执行完,局部变量生命结束
页面关闭,全局变量生命结束
闭包
函数嵌套函数,子函数访问父函数的变量,就产生了一个闭包环境
闭包的作用:1、函数外可以使用函数内的局部变量和局部函数; 2、在循环当中找到对应的i的值
它的最大用处有两个,一个是前面提到的可以读取函数内部的变量,另一个就是让这些变量的值始终保持在内存中。
垃圾回收机制
变量存在内存当中的,变量在使用完以后,没有在其它的地方再使用,就会被清除,用来释放内存。垃圾回收机制会按照固定的时间,周期性的执行
字符串拼接 :+ 当加号的任意一边有一个是字符串,那它就是字符串连接的意思
* if语法
* if(判断条件){
* 当判断条件成立的时候,执行这里的代码
* }else if(判断条件1){
* 当头条条件1成立的时候,执行这里的代码
* }else if(判断条件2){
* 当判断条件2成立的时候,执行这里的代码
* }else{
* 当以上条件都不成立的时候,执行这里的代码
* }
当一个条件满足的时候,代码只会走满足条件对应的大括号里的内容。其它的都不会走
数组 length属性
document.getElementById(id名称)
querySelector(css选择器)
* 通过css选择器去获取一个元素
* 它获取到的只有一个元素,如果说有重复的,那它只取第一个
*
* 主语
* document 从整个文档里去获取元素
* 父级 从父级里去获取元素
* querySelectorAll(css的选择器)
* 通过css选择器获取到一组元素
* 它获取到的也是一组元素,它也是一个类数组
*
* 主语
* document 从整个页面中去获取一组元素
* 父级 从父级下去获取一组元素
for循环:
for(条件初始化;条件判断;条件变化){
当条件成立的时候(true)重复执行这里的代码
}
第一步:条件初始化
第二步:条件判断
第三步:走大括号里的代码
第四步:条件变化
第二次循环:第二步、第三步、第四步
for in用来遍历对象当中的数据:
for(var 变量名 in 对象){
* 变量名 对象里的属性名(key)
* 对象[属性名] 属性名对应的值
* }
while:条件循环
* for 次数循环
* while 条件循环,它一般用在嵌套的元素,或者有嵌套的数据
* this
* 指的是当前对象
* 关键词,不能当作变量名
* 只能读,不能写。它的值只能用,不能修改
*
* 1、在函数外用
* this是指向window
* 2、在函数内使用
* 1、函数是直接被调用的
* this指向window
* 2、被事件所调用,并且是以赋值的形式出现
* this指向是,谁调用了函数,那this就指向谁
*
* 谁调用了函数,那this就指向谁
js简单数据类型:String Number(NaN运算失败时出现,NaN不等于NaN) Boolean Undefined(未定义:只有undefined;声明一个变量,但没给它赋值,那它就是undefined) Null(空: 只有null)
js复杂数据类型:Object(对象 键值对:key:value),操作:Object.属性
检测数据类型:tyleof(数据)
* 系统定义的数据类型 typeof返回的数据类型
* String string
* Number number
* Boolean boolean
* Undefine undefined
* Null object
* Object object
函数的typeof结果为function
从页面当中拿到的内容都是字符串
数据类型转换
js支持把任意一种数据类型转换成以下类型
* 数字
* 字符串
* 布尔值
* 对象转成这三种数据是没有意义,因为对象里面可以放任意一种数据类型
显式数据类型转换
Number(要转换的值) 把任意类型都转为数字 Undefined:NaN Null:0 字符串:(空为0 ;纯数字为数字;不纯为NaN)、、、parseInt() parseFloat() :开头是空格或数字(否则就是NaN)开始找,直到遇到非数字就停止;
String(要转换的值):加上引号
Boolean(要转换的值):Undefined和Null、数字0和NaN、空字符串都是false
isNaN():检测数字 它会先把参数用Number()方法转一下 纯数字的字符串或是数据都返回false
隐式数据类型转换:在进行操作的时候,js内部把数据转换成符合操作的类型
加号两边没有字符串,那就是数学中的加法运算,会把true转成数字;有字符串的话就都转成字符串
减号的作用就是数学上的减法运算,会把两边都转成数字
数组和对象的区别:
- 对象里的“名称”是唯一的,很多时候我用对象来去除重复数据。
- 三元操作符
a?b:c
* 如果a的值为真,返回b,否则返回c
语法
* switch(变量){
* case 值:
* 当这个值与变量的值相同的时候,才会走这里的代码
* break; 停止以下代码继续执行
* case 值:
* 当这个值与变量的值相同的时候,才会走这里的代码
* break; 停止以下代码继续执行
* case 值:
* 当这个值与变量的值相同的时候,才会走这里的代码
* break; 停止以下代码继续执行
* default:
* 当以上变量都不满足的时候,会执行这里的代码
* }
定时器:js中内置的一个方法
每隔一段时间或者延迟一段时间就执行一段指定的代码
setInterval(function(){
* 每隔一段时间就会执行这里的代码
* },时间)
setTimeou(function(){
* 当时间到达后,会执行这里的代码
* },时间);
如果函数是写在外面的,在这里调用的时候只用写函数的名字,不能加括号
定时器里的this是指向window的,因为定时器是window身上的一个方法,所以this指向window
清除定时器:clearInterval(timer);
clearInterval(定时器的返回值)
运动的原理
* 在定时器里不断的去修改元素的属性,修改完成以后再把结果重新赋给元素
* 运动的问题
* 1、如果每次的步长如果与目标值不成倍数的话,就到达不了目标值
* 解决:把判断条件改成大于等于就可以
* 2、如果用户连续点击开始按钮的话速度就会越来越快
* 原因:用户不断去点击按钮话会重复开启多个定时器,造成速度累加
* 解决:在点击的时候先把上一个定时器给它清除了
js知识点乱炖的更多相关文章
- [PHP知识点乱炖]四、全局变量——小偷从良记
本章要讲的是PHP的全局变量. 这里讲个小故事: 很多年前,一个很聪明的小偷,想去偷一户人家的钱.可是他偷不到主人的钥匙,怎么办呢? 他想到了一个办法,去之前嚼了一块口香糖,口香糖的牌子是“大大泡泡糖 ...
- HTM CSS 笔记乱炖
一.常用实体(字符转义) '<' == '<' '©' == '©' '>' == '>' '"' == '"' ' ' == ' ' '®' == '®' ...
- JS知识点整理(二)
前言 这是对平时的一些读书笔记和理解进行整理的第二部分,第一部分请前往:JS知识点整理(一).本文包含一些易混淆.遗漏的知识点,也会配上一些例子,也许不是很完整,也许还会有点杂,但也许会有你需要的,后 ...
- Node.js知识点学习
Node.js知识点学习 一.基本概念 Node.js,或者 Node,是一个可以让 JavaScript 运行在服务器端的平台.可以说,Node.js开创了javascript模块化开发的先河,早期 ...
- JS知识点整理(一)
前言 本文把平时的一些读书笔记和理解进行了整理归纳,包含一些易混淆.遗漏的知识点,也会配上一些例子,可能不是很完整,还会有点杂,但也许会有你需要的(目前先整理了一部分,笔记有点多,后续会持续更新). ...
- vue.js 知识点(四)
看完了vue.js的官方文档,大概对这些知识有了那么一点的了解了,但是很多具体的运用还不太清楚,现在就总结一下,关于其中的一些知识点的运用: v-bind: 动态绑定指令,默认情况下,是给html ...
- fabric.js 知识点整理
fabric.js是一个很好用的 canvas 操作插件,下面整理了一些平时项目中用到的知识点: //1: 获得画布上的所有对象: var items = canvas.getObjects(); / ...
- JS知识点查漏补缺
知识点1: 判断语句中遇到NaN即为 False 只需要注意遇到False即为False即可 使用join(),toString()皆可以将数组转化为字符串 二者的相同点在于都可以转化数组为字符串 二 ...
- 前端必备的js知识点(转载)
1.本文主体源自:http://www.cnblogs.com/coco1s/p/4029708.html,有兴趣的可以直接去那里看,也可以看看我整理加拓展的.2.js是一门什么样的语言及特点? ...
随机推荐
- Hibernate(七)
三套查询之HQL查询(原文再续书接上一回) where子句部分(查询过滤部分) Hibernate的where子句部分能支持的运算符,表达式.函数特别多,用法与sql语句是一样的. 常用的表达式.运算 ...
- 0302思考IT行业的感想
在看完这两篇报道IT行业的报道后,可以看出IT行业在整个就业行业中是一个十分热门的行业,而且薪酬也相对较高,企业对于各种IT人才的需求很大,意味着就业的面较宽且就业的前景比较乐观.但是随之而来的问题是 ...
- 对小组项目alpha发布的评价
第一组:新蜂小组 项目:俄罗斯方块 评论:看见同学玩的时候,感到加速下落时不是很灵敏,没有及成绩的功能,用户的界面仍在修正. 第二组:天天向上 项目:连连看 评论:这个游戏增加了很多好玩的功能,比如更 ...
- maven将依赖打入jar包
将 依赖打入jar包,由于maven管理了所有的依赖,所以将项目的代码和依赖打成一个包对它来说是顺理成章的功能.maven的这个功能之前就用过,但这 次使用时忘了细节,只记得用maven的assemb ...
- LR监控tomcat服务器
采用编写VuGen脚本访问Tomcat的Status页面的方式获取性能数据(利用了关联和lr_user_data_point函数),本质上还是使用tomcat自带的监控页面,只是将监控结果加到LR的a ...
- 高性能的HTTP代理 LittleProxy
引用: https://github.com/adamfisk/LittleProxy 拦截和操纵HTTPS流量,LittleProxy使用中间人(MITM)管理器. LittleProxy的默认实现 ...
- BPSK相干解调和DBPSK非相干解调误码率仿真
BPSK相干解调和DBPSK非相干解调误码率仿真 本脚本完成了BPSK和DBPSK两种不同调制方式下的误码率(DBPSK差分相干)仿真, 并和理论曲线进行了对比. 撰写人:*** 最后修改日期:201 ...
- 第186天:js深入理解构造函数和原型对象
1.在典型的oop的语言中,如java,都存在类的概念,类就是对象的模板,对象就是类的实例.但在js中不存在类的概念,js不是基于类,而是通过构造函数(constructor)和原型链(propoty ...
- 第109天:Ajax请求GET和POST的区别
一.Ajax请求GET和POST的区别 1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来 2.使用Get请求发送数据量小,Post请求发送数据量大 3.get请求需注意缓存 ...
- 【bzoj5147】casino 区间dp
题目描述 赌城拉斯维加斯的米高梅大赌场最近推出了一种新式赌法.它的玩法是由庄家设局(所用赌具是一批五颜六色的筹码),赌徒只要交付一定数额的赌资即可入局.开赌前庄家将手中的筹码依次排开铺成一排构成一局, ...