JS的基础应用
传参:
1. (一个参数) 声明:function 名字(参数){
//code
//参数
}
调用:名字(参数)
2. (多个参数) 声明:function 名字(参数1,参数2){
//code
//参数1,参数2
}
调用:名字(参数1,参数2)
标示符和表达式:
. 标示符
[] 表达式
只要 . 能干的 [] 都能干
.只能操作已有属性
undefind 未定义
数据类型:
Number 123
String '123' 只要加单引号就是字符串
字符串和变量:
var a='123';
a是变量 '123'是字符串
window.onload:
写js
1.window.onload
2.获取元素
3.加事件....
获取一组元素:
document.getElementsByTagName('标签')
数组(Array):
[1,2,3,4,5]
length:数组的个数 从1开始
下标: 从0开始
this:
谁触发的事件 this就是谁
循环:
自增:
i=i+1;
i+=1;
i++;
while(条件){
//code
}
for(初始值;条件;自增){
//code
}
自定义属性 高级浏览器第一遍 过滤掉
web分离 样式 结构 行为
字符号拼接 :两个单引号 两个加号 加号里写 i
=================================================
选项卡封装:
index 索引
操作表单元素:
获取:元素.value
设置:元素.value='值';
操作非表单元素:
获取:元素.innerHTML
设置:元素.innerHTML='内容'; 内容可以是任何东西(包括标签)
document.write 页面输出内容
字符串连接:
**字符串不能换行
1.换行可以 加号 拼起来
2. \ 每换行尾部加
3. ``引号 直接加 第一个ES6的语法
()提高优先级 (this.index+1)
秘诀:两个单引号 两个加号 里面放变量
字符串和数字相加 会变成字符串 字符串不会运算
调试:
工具:F12
alert()
console.log()
快捷键:ctrl+shift+j
FF(firefox) :安装一个 firebug(重新刷新)
IE:打开错误的调试的工具
工具--Internet选项--高级--禁用脚本本调试(其它)
数据类型:
基本数据类型(不可分)
string 字符串
number 数字
boolean 布尔值
undefined 未定义
object 对象(可分的) object里面可以包数组也可以包对象
function 函数 ?有争议
global ** ES6 顶层对象
typeof 检测数据类型
undefined什么时候会出现?
1.变量声明了,但是没有赋值.
2.访问一个不存在的属性.
3.当参数没有值
字符串转成数字
显式类型转换: 强制类型转换
parseInt(字符串) 把字符串转变成整数 '12.5px' 12
parseFloat(字符串) 把字符串转变成小数(浮点数) '12.5px' 12.5
Number(字符串) 把字符串转变成数字 比较严格。 '12.5px' 非数字是NaN
isNaN(x) 函数用于检查其参数是否是非数字值。
如果 x 是特殊的非数字值 NaN(或者能被转换为这样的值)返回的值就是 true。
如果 x 是其他值,则返回 false。
隐式转换:
- * / % == >< 隐式转换,尽量别用。
alert('10'*2) ('10'+2) 加号 做了字符串 拼接
====================================================
事件:
onmouseover
onmouseout
onclick
onchange select的value 改变的时候用 99%
select里面的option的value怎么获取
option的value=oS.value
作用域:
局部变量:只能在函数内部使用
全局变量:在哪里都能使用
闭包:子函数可以去使用父函数局部变量(如果函数内部的变量和全局同名 不会覆盖)
匈牙利命名法:前面有类型前缀后面跟单词首字母大写
**必须要遵守
o object oBtn 一个对象
a array aBtn 多个东西
**可以遵守
i int iNum 整数
s string sName 字符串
b boolean bOk 布尔值
流程控制语句:
if..else..
switch(条件){
case 情况1: 语句
break;
case 情况2:
break;
}
break 打断执行 后面代码不执行
continue 跳过本次执行
return:返回值
1.可以返回任何东西
2.阻断后面代码执行
3.没有返回值 返回undefined
简写: 条件&&语句1
if(条件){
语句1
}
条件?语句1:语句2; (三目运算符)
if(条件){
语句1
}else{
语句2
}
什么是真
true 非空对象 非0数字 非空字符串
什么是假
false 0 '' null undefined NaN
获取行间样式 :obj.style.xxx
获取非行间样式(生效的样式)
obj.currentStyle.样式名 IE (低级浏览器)
getComputedStyle(obj,false).样式名 IE9+ chrome FF (高级浏览器)
false 是兼容老版本火狐浏览器
处理兼容 if...else{}
if(obj.currentStyle){
obj.currentStyle.样式名
}else{
getComputedStyle(obj,false).样式名
}
未定义的属性undefind
未定义的函数报错
function getStyle(obj.sName){
return
obj.currentStyle?obj.currentStyle[sName]:getComputedStyle(obj,false)[sName];
}
=======================================================
随机数
Math.random() 0-1的随机数不包括
范围随机数
parseInt(Math.random()*(m-n))+n
eval:注入攻击
eval把字符串解析成js能理解的程序
运算符:
算术运算:+ - * /
莫 % 取余
赋值运算符
= += -= *= /= %=
比较运算符
> < >= <=
== !=
=== 全等
!== 不全等
= 赋值
== 判断是否相等,只要值一样就ok
=== 判断是否全等,值要一样,类型也要一样。
逻辑运算符
&& 与(并且) 两边的条件必须都满足才算真的。
|| 或(或者) 两边的条件满足一个就是真的。
! 非(取反)
双色球:
arr.push 往数组里面添加
1 随机1-34
2.不重复
3.6个
不重复:找数组里面的重复的 找到返回true 找不到返回false
补0: return n<10?'0'+n:''+n;
定时器:
setInterval(函数,时间)
setInterval(function(){JS代码},时间)
时间:毫秒 1000 1s
***只要用定时器 一定要先关 再开
setTimeout(函数名字,时间) 只执行一次
clearTimeout(函数名字)