JavaScript 基础语法速过 [适合速刷复习]

注意:不适合0基础小白 小白快速入门请移步另一篇文章
JavaScript快速入门


js变量类型和方法

js 定义变量
var
js 输出变量
alert();  窗口弹出
document.write(); 页面打印
js 变量类型
字符串 整型 浮点 布尔 数组 对象 json对象 NaN null undefined

js相关对象

1.js对象

   obj=new Object();

2.dom对象

  eleobj=document;

3.json对象

	jsobi={'username':'小林','age':20,'say':function(){alert(1);  // 对象的方法}};alert(jsobi.age);alert(jsobj.say()); // 别忘了加圆括号

变量类型相关

1.JavaScript 变量作用域

记住  函数里面带var的是局部变量 其余的(不带var)都是全局变量.

2.变量类型测试 typeof()

typeof()  变量类型判断函数  内置的函数
arr instanceof Array 判断当前的arr是否是Array生产出来的
arr = [1,2,3];
alert(arr instanceof Array); // true

顶级全局方法(系统内部函数)

parseInt();  // 强制转整形
parseFloat();  // 强制转浮点
eval();     //执行字符串中的表达式[进行运算]
Number(); // 转整型
String(); // 转字符串
Boolean();  // 转布尔类型eval()  实例
s='a=1*10*10';  // 一串字符串 
alert(s);
eval(s);  //执行字符串中的表达式[进行运算]
alert(a); // 会算出来a的运算值

JS变量类型转换相关

1.整型转化为字符串  String()
2.字符串转整型   parseInt()
3.所有类型转布尔类型布尔类型为假的情况   字符串(‘ ’) 整型(0)  浮点型(0,0) null  NaN  undefined
4.json字符串转json对象 [eval]
v="{'username':'user1','age':20}";  
obj = eval('('+v+')'); // 变成表达式执行单元 左右两边的括号
console.log(obj);

JS的基本语法

   判断if  else     switch     循环while   for   for in这里仅做复习 不过多解释 详细还请参考菜鸟教程

案例—乘法表

// 案例 3*3 乘法表 一定要理解过程
<script>for(i=1;i<=3;i++){document.write("

")for(j=1;j<=i;j++){// 初始化j=1document.write(''+ j+"x"+i+"="+(i*j)+' ');}document.write("

"
)} // 理解思路 一定要理解 </script>

消息框

警告框 [alert] 
确认框 [confirm] 
提示框  [prompt]

javascript的内置对象
数学 日期 定时器 超时器 字符串 数组

数学对象

Math.ceil()        向上取整  天花板函数
Math.round()    四舍五入
Math.floor()      向下取整   地板函数
Math.random()随机返回 01 的值
Math.max()   Math.min()   最大最小值
刷新换图片案例
var img=['yu2.png','yu3.png','yu4.png','yu5.png'];
var tot = img.length;
var rt = Math.random();
var tt = Math.floor(tot*rt); // 取1到4的值
var imgobj = document.getElementById('aid');
imgobj.src="./img/"+img[tt];

日期
1.生成对象

bb=new Date();

2.获取日期的方法

bb.getFullYear();  年
bb.getMonth()+1  月
bb.getDate();  日
bb.getHours();  时
bb.getMinutes();  分
bb.getSeconds()

定时器案例

注意两个函数
setInterval(function(){ },1000)定时器函数
clearInterval();清除定时器// 秒表案例function gettime() {var tt = new Date();hour = tt.getHours();minute = tt.getMinutes();second = tt.getSeconds();str = hour + ":" + minute + ":" + second;var gettim = document.getElementById('sid');sid.innerHTML = str;}gettime(); // 先把时间输上去setInterval(function () {gettime();}, 1000)
注意!!!!!   
s++ 先赋值后运算
++s 先运算后赋值

JS穿插面试知识点–到底谁在+

前加  和  后加
s=3
s++ ; // s=s+1 先赋值后运算 ++s
t=s++;  先把3给t 然后s=s+1 
t=++s;  先运算后赋值 先运算 s=s+1 然后赋值给T

JS实现超时器案例

var tq = document.getElementById("sid");
var s=5;
setInterval(function () {tq.innerHTML = --s;if(s==0){location="https://www.baidu.com";}}, 1000);

JS字符串的相关操作

 toUpperCase()转换成大写toLowerCase();转换成小写indexOf(); 搜索指定字符串出现的位置substring();返回指定索引区间的子串split(); 以什么分割 返回为数组search(); 查找是否存在 返回首次出现的位置  返回-1为找不到 search(); 可用于正则=============match(); 多用于正则  把字符串中的所有home都找出来 返回数组var s='web.home.Index.php.Home';arr=s.match(/home/ig);console.log(arr);  // home Home   i:表示忽略大小写 g表示全部==============
replace(); 替换操作 不动原来的字符串var s='web.home.Index.php.Home';arr=s.replace(/home/ig,"hhh");console.log(arr); // 都会替换==============var s='heLLo, woRd';console.log(s.indexOf('w')); // 6`console.log(s.toLowerCase()); // hello,wordconsole.log(s.toUpperCase()); // HELLO,WORDconsole.log(s.substring(1,3));// 从索引1开始 不包括3 返回 eL || substr()包括最后eLLconsole.log(s.substring(3));// 从索引3开始到结束 Lo, woRd// 截取文件var s='/web/home/index.php';pos= s.lastIndexOf('/');file= s.substr(pos+1);console.log(file);//截取目录var s='/web/home/index.php';pos= s.lastIndexOf('/');dir= s.substr(0,pos);console.log(dir);// 截取时间相关格式var s='2016-05|23';arr=s.split(/-|\|/);  // - |  \| 先加转义字符\ 2013,05,23console.log(arr); 

JS的数组相关
1.基本属性

1.1 访问Array数组的长度 直接访问length属性
注意:如果 修改length属性|赋值操作 都会对原来的数组直接进行修改

1.2 同时可以用 indexOf( )函数 来进行搜索指定元素

1.3 slice()函数用法

slice() 对应字符串substring()版本 截取数组的部分元素 返回一个新的数组对象
slice()如果不给任何参数 可以起到复制数组的作用
var arr=['a','b','c'];console.log(arr.slice(0,2));// 从下标0开始到2 不包括2  abconsole.log(arr.slice(1)); // 从下标1开始到最后 输出bcvar copyarr=arr.slice(); // 起到复制数组的作用console.log(copyarr); // abc 但是 copyarr === arr 结果是false

1.4 push和pup操作

push()向Array的末尾添加若干元素,pop()则把Array的最后一个元素删除掉:var arr=['a','b','c','d'];arr.push('e'); console.log(arr);// abcdearr.pop();arr.pop();arr.pop();console.log(arr);// ab

1.5 unshift和shift方法

如果希望在数组头部添加元素 则使用unshift( )方法,而shift()方法则把数组对象的第一个元素删除
var arr=['a','b','c','d'];arr.unshift(5); console.log(arr);// 5abcdarr.shift();arr.shift();arr.shift();console.log(arr);// cd

1.6 其他常用操作

sort()数组的排序用法
sort( )可以对数组进行排序 按照默认进行排序 从个位数  一般需要自定义升降序 里面传参数
用法案例var arr = [100, 200, 300, 50, 60];// 定义升序函数function asc(a, b) {return a - b; // 必须有两个参数}// 定义降序函数function desc(a, b) {return b - a;}console.log(arr.sort(asc));console.log(arr.sort(desc));
=======================================reverse( ) 把整个数组元素进行反转:splice( ) 是修改数组的万能方法 从指定索引开始删除若干元素 然后再从该位置添加若干元素
var arr=['Java','css','JavaScript','b'];
arr.splice(1,2);// 从索引1开始删除2个元素 css JavaScript
arr.splice(2,0,'vue','mysql'); // 只添加 不删除
console.log(arr);  //注意 原数组会改变concat( ) 把当前的数组和另一个数组相连接,并返回一个新的数组
var arr=['Java','css','JavaScript','b'];
var arr2=['qq','wx'];
console.log(arr.concat(arr2)); // java css javascript b qq wxjoin( )  可以把当前数组的每个元素用指定字符串连接起来 然后返回 arr.join('-');match(); 多用于正则  把字符串中的所有home都找出来 返回数组var s='web.home.Index.php.Home';arr=s.match(/home/ig);console.log(arr);  // home Home   i:表示忽略大小写 g表示全部

函数的返回值 return
javascript运算符

1.数学运算符      + - * / %
2.比较运算符      >,<,==,!=, >= ,<=
3.逻辑运算符      && ,  || , !

javascript的正则表达式

1.修饰词  i g m[常用]
2.方括号 [ ] 匹配 
>3.元字符
\w  表示任意一个字母数字下划线  [更多正则规则 自行看文档]

JavaScript 事件对象

鼠标事件

onclick [单击事件]
ondblclick [双击确定]
onmouseenter [鼠标移入]
onmouseleave [鼠标离开]
onmousemove  [鼠标移动]document.onmousemove=function(){document.title='小林子';}// 获取鼠标位置坐标document.onmousemove=function(event){x=event.clientX;y=event.clientY;document.title=x+"|"+y;}oimg=document.getElementById('img');document.onmousemove=function(event){x=event.clientX;y=event.clientY;oimg.style.left=x+"px";oimg.style.top=y+"px";}

键盘事件

  onkeydown 键盘按下onkeyup     键盘弹起 keyCode     获取键盘码控制角色移动案例oimg=document.getElementById('img');xv=0;xs=30;yv=0;ys=30;document.onkeydown=function(event){kc=event.keyCode;switch(kc){case 37:xv=xv-xs;oimg.style.left=xv+"px";break;case 38:yv=yv-ys;oimg.style.top=yv+"px";break;case 39:xv=xv+xs;oimg.style.left=xv+"px";break;case 40:yv=yv+ys;oimg.style.top=yv+"px";break;}}

JS表单 onkeyup键盘弹起事件 自动转大写

 yzm = document.getElementById("yzm");yzm.onkeyup = function () {val = (this.value).toUpperCase();this.value=val;}

JSBOM对象[浏览器对象]

// 可视区域的高
yxg=document.documentElement.clientHeight;// 屏幕的总高度
sumheight=document.documentElement.scrollHeight;// 滚动的高度 [里面内容的高度]
gdg=document.body.scrollTop;// 可视区域的宽度
document.documentElement.clientWidth;

JS弹力球案例

   objhj = document.getElementById("hj");ys = 0;yv = 10;xs=0;xv=10// 可视区域的高yxg = document.documentElement.clientHeight;imgheight = 100;diferHeight = yxg - imgheight;// 可视区域的宽yxk = document.documentElement.clientWidth;imgWidth = 100;diferWidth = yxk- imgWidth ;setInterval(function () {// y轴 上下ys = ys + yv;if (ys >= diferHeight) {ys = diferHeight;// console.log(diferHeight);console.log(yv);yv = -yv; // 进入到xs=xs-10}if (ys <= 0) {yv = -yv; // 负负得正}objhj.style.top = ys + "px";// x轴 左右xs=xs+xvif (xs >= diferWidth) {xs = diferWidth;// console.log(difer);console.log(xv);xv = -xv; // 进入到xs=xs-10}if (xs <= 0) {xv = -xv; // 负负得正  }objhj.style.left = xs + "px";}, 50);

JavaScript的表单事件

onfocus   获得表单的焦点事件onblur    失去焦点onchange  选择事件  用于下拉菜单城市选择[select]onselect  当被选中的时候onsubmit  当表单提交的时候onreset   当表单重置的时候

JavaScript的表单事件方法

select() 选中方法
blur()   失去焦点 配合onkeydown使用
focus()  获取焦点
click()  点击方法
submit() 提交方法
reset()  重置方法

JS如何阻止浏览器的默认行为

return false; 
javascript:

JavaScript 中的其他事件

onload       当所有窗口的元素加载完成之后 再执行onload的代码 图片缓加载 window.onload
onerror      当图片加载失败的时候
onresize     当浏览器的大小发生改变的时候
onscroll     获取滚动的高度 [scrollTop]

JavaScript 的BOM 对象

 navigator 浏览器特性userAgent属性 获取浏览器的内核信息 利用match()分辨是什么浏览器

screen 屏幕对象

  width 电脑的分辨率 宽height 高度   // 判断分辨率适合什么样的css

history 对象

 方法!back() 后退一个历史forward() 前进一个历史go(-1) 前进一个历史location 地址栏

属性

   hash  获取锚点host  域名的部分href  和location一样pathname  页面的名称protocal  协议search  // 参数  获取url中的参数部分方法 reload();  类似于刷新按钮

document 对象
方法

 alert();confirm();prompt();setInterval();clearInterval();setTimeout();clearTimeout();

javascript 的Dom对象

1.获取dom元素的基础对象

document.documentElement 
document.head
document.title
document.body

2.获取元素的对象方法

document.getElementByid();  通过id得到对象   唯一的
document.getElementByTagName(); 通过标签名得到对象   返回的类似数组的对象
document.getElementByClassName(); 通过类名得到对象  返回的是类似数组的对象
document.getElementByName();  通过name得到对象 nodelist 节点列表

3.元素对象的标准属性

obj.id;
obj.classname;
obj.style;
obj.title;

4.元素对象的非标准属性

obj.username   
obj.age
obj.sex
获取方式 [都可以获取]  一般封装成函数 常用这个获取属性  万能的
getAttribute('age') 获取属性值
setAttribute('age','50'); 设置属性值
hidobj = document.getElementById('hid');function getA(obj, attr) {return obj.getAttribute(attr);}getA(hidobj, 'info');function setA(obj, attr, value) {obj.setAttribute(attr, value);}setA(hidobj, 'info', '修复好了');

5.元素对象的JS属性

obj.tagName;     获取标签的名字
obj.innerHTML;   获取标签里面的全部内容[包括html标签]
obj.outerHtml;   获取标签的全部内容
obj.textContent; 获取标签里面的内容[过滤掉内容中的html标签]

6.直接获取dom元素集合

tableobj.rows;
tableRoWOBJ.cells;hid = document.getElementById('tid');function set(i, j) {hid.rows[i - 1].cells[j - 1].innerHTML = '222';}set(2, 2);  // 坐标修改值

selectOBJ.options 城市排名案例

selectedIndex 获取options索引的选项被选中 [从0开始]
options 获取里面对象的集合btn = document.getElementById("btn");sid = document.getElementById('sid');btn.onclick = function () {idx = sid.selectedIndex;opts = sid.options;alert("当前的城市排名:" + opts[idx].getAttribute('order'));}

7. dom完整实例

1.点击标题 切换内容
for (i = 0; i < hobj.length; i++) {hobj[i].setAttribute('num', 0);hobj[i].setAttribute('line', i);pobj[i].id = i;hobj[i].onclick = function () {num = parseInt(this.getAttribute('num'));line = this.getAttribute('line');nep = document.getElementById(line);if (num % 2 == 0) {nep.style.display = "none";} else {nep.style.display = "block";}this.setAttribute('num', num + 1);}}
JS的Ajax无刷新技术

可以更好的增加用户体验
使网页不会有回载 减少资源下载
采用异步技术
前端到后端的一个介质平台

属性

xhr.readyState
xhr.responseText

方法

 xhr.open();xhr.send();

Ajax手写链接方式

  			生成Ajax对象xhr = new XMLHttpRequest();// 用js  get请求del.php文件 同时给该文件传递一个ID值 方便	删除数据xhr.open('get', 'del.php?id=' + id, true);xhr.send(); // 开始异步链接并请求// js需要监听整个过程 监听事件xhr.onreadystatechange = function() {if (xhr.readyState == 4) {// 4为状态码 已经完成请求响应r = xhr.responseText;if (r == '1') {// 后台删除成功之后 返回值 进行判断tr = document.getElementById(id); // 唯一的 tr的那行tr.style.display = "none";}}}

正常PHP后台删除[不通过Ajax 每次会刷新页面]


index.php<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../jquery-1.10.1.min.js"></script>
</head><body><h1>用户管理</h1><?php$pdo = new PDO('mysql:host=localhost;dbname=yggl;charset=utf8;port=3306', 'root', 'root');$sql = "select * from test ";$smt = $pdo->query($sql);$rows = $smt->fetchAll(PDO::FETCH_ASSOC);?><table whidth="800px" border="1px solid black" cellspacing='0'><tr><th>id</th><th>用户名</th><th>密码</th><th>删除</th></tr>// 没用ajax技术<?phpforeach ($rows as $row) {echo "";echo "{$row['id']}";echo "{$row['username']}";echo "{$row['password']}";echo "删除";echo "";}?></table>
</body></html>========================分割线
del.php<?php
$id = $_GET['id'];// 删除数据库
$pdo = new PDO('mysql:host=localhost;dbname=yggl;charset=utf8;port=3306', 'root', 'root');
$sql = "delete from test  where id=$id";
if ($pdo->exec($sql)) {echo "";
} else {
}

PHP后台删除[通过Ajax 进行异步传输 用js来隐藏删除]

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="../jquery-1.10.1.min.js"></script>
</head><body><h1>用户管理</h1><?php$pdo = new PDO('mysql:host=localhost;dbname=yggl;charset=utf8;port=3306', 'root', 'root');$sql = "select * from test ";$smt = $pdo->query($sql);$rows = $smt->fetchAll(PDO::FETCH_ASSOC);?><table whidth="800px" border="1px solid black" cellspacing='0'><tr><th>id</th><th>用户名</th><th>密码</th><th>删除</th></tr>// 没用ajax技术<?phpforeach ($rows as $row) {echo "";echo "{$row['id']}";echo "{$row['username']}";echo "{$row['password']}";echo "删除";echo "";}?></table>
</body>
<script>objs = document.getElementsByClassName('del');for (i = 0; i < objs.length; i++) {objs[i].onclick = function() {id = this.getAttribute('num');// 生成Ajax对象xhr = new XMLHttpRequest();// 用js  get请求del.php文件 同时给该文件传递一个ID值 方便删除数据xhr.open('get', 'del.php?id=' + id, true);xhr.send(); // 开始异步链接并请求// js需要监听整个过程 监听事件xhr.onreadystatechange = function() {if (xhr.readyState == 4) {// 4 为状态码 为完成请求的时候r = xhr.responseText;if (r == '1') {// 后台删除成功之后 约定好的返回值 进行判断tr = document.getElementById(id); // 唯一的 tr的那行tr.style.display = "none";// js控制那一行进行隐藏}}}}}
</script></html>=============分割线
del.php
<?php
$id = $_GET['id'];// 删除数据库
$pdo = new PDO('mysql:host=localhost;dbname=yggl;charset=utf8;port=3306', 'root', 'root');
$sql = "delete from test  where id=$id";
if ($pdo->exec($sql)) {echo 1;
} else {echo 0;
}

  • 来自一个向IT行业发展的小白一枚,
  • 码字不易 如果对你有帮助还请点个赞
  • 资源均来自于网络如有侵权还请联系删除
当工作是乐趣的时候,生活就是享受.
When work is a pleasure, life is a joy.


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部