JS


JS


引入

<script>
    alert("hello!");
</script>
<script src="../JS/test01.js">    </script>

基本语法

大致定义

'use strict'	//开启严格检查模式
var num=1;  //定义
let nu=2;  //定义
alert(num); //弹窗
console.log(num);   //计算内容

字符串

var str1="abc";
var str2="def";
var str3=`${str1}${str2}`;  //合并字符串
console.log(str3);
console.log(str3.toUpperCase());    //变为大写
console.log(str3.toLowerCase());    //变为小写
console.log(str3.indexOf('c')); //查询第几个出现
console.log(str3.substring(1,3));   //截取字符

数组

var a=[1,2,3,4,5];
a[1]=1;     //更改查询
a.length=10;    //更改长度
a.indexOf(3);   //查询出现下标
a.slice(1,3);   //类似substr截取
a.push(1,2);    //push值
a.pop();    //pop值
a.unshift(1,2); //头部推入
a.shift();      //弹出头部元素
a.sort();   //排序
a.reverse();    //反转
a.concat([1,2,3]);  //连接数组
a.join('-');    //特定字符连接

对象

var person = {
      name:"scv",
      age:3,
      tag:[1,2,3]
}   //定义对象
delete person.name;	//删除对象属性
person.sex="male";	//直接添加属性
person.hasOwnProperty('age');	//查询

流程控制

//同c||java,多一个forEach
a.forEach(function (value){
    console.log(value);
})

Map&Set

let map = new Map([['a',100],['b',90],['c',80]]);   //定义map
map.get('a');   //获取值
map.set('d',70);    //插入
map.delete('c');    //删除值
map.has('a');   //查询

let set = new Set([1,2,3,3]);   //定义set
set.add(4); //加入值
set.delete(3);  //删除值
set.has(3); //查询

for(var x of map){
    console.log(x);
}	//遍历map||set

函数

函数的定义都定义在开头,默认所有的全局变量绑定到windows上。

//---------------------1--------------------
function name(x){
    return x;
}
//---------------------2--------------------
var name = function(x){
    return x;
}
//抛出异常
function abs(x){
    //JS特性
    if(arguments.length>1) {
        throw "存在多个参数!";
    }
    if(typeof x!=='number'){
        throw "Not a number!";
    }
    else return x>0?x:-x;
}
//rest获取除了已经定义参数之外的所有参数
function f(a,b,...rest){
    console.log(a);
    console.log(b);
    //利用rest抓取后面的参数
    console.log(rest);
}
//避免绑定windows的冲突,改变绑定
//把代码放入自己定义的唯一空间中,降低冲突问题
var test={};
test.name="hhh";
test.add=function (a,b){
    return a+b;
}

方法

//------------------1-------------------
var dyd={
    name:'dyd',
    birth:2020,
    age:function (){
        let now=new Date().getFullYear();
        return now.this.birth;
    }
}
//------------------2-------------------
function get(){
    let now=new Date().getFullYear();
    return now-this.birth;
  }
let dyd={
        name:'dyd',
        birth:2020,
        age: get
  }
get.apply(dyd,[]);	//this指向dyd,第二个是没有参数

Date

let now = new Date();
now.getFullYear();
now.getMonth();
now.getHours();
now.getSeconds();
now.getTime();
now.toLocaleString()

JSON

轻量级数据交换格式,提高网络交换速率。

任何的JS类型都可以转化为JSON来表示(对象:{},数组:[],键值:key:value),转化为字符串;

let user={
     name:"ttt",
     "age":3
}
var str=JSON.stringify(user);   //对象转化为json字符串
var obj=JSON.parse(str);    //字符串转化为对象

对象继承

引入一个原型链,意思是不断继承最终可以看到是object延申出来的,但是仍然是一个环。

obj1.__proto__=obj2;	//obj1继承obj2
class student{
    constructor(name) {
        this.name = name;
    }
    hello(){
        alert("hello");
    }
}
class pupil extends student{
    constructor(name,grade) {
        super(name);
        this.grade=grade;
    }
    hello() {
        alert("hello!");
    }
}
let xm=new student('xm');
let xh=new pupil('xh');

BOM对象

浏览器对象模型。

windows:

window.alert();         //弹窗
window.innerWidth();    //内部宽度
window.innerHeight();   //内部高度
window.outerWidth();    //外部宽度
window.outerHeight();   //外部高度

navigator:

//获取一些浏览器的系统配置
navigator.appName
navigator.appVersion
navigator.userAgent
navigator.platform

location:

screen.width	//屏幕宽度
screen.height	//屏幕高度
location		//查看url消息(重点)
location.reload();  //刷新
location.assign("url"); //定位到新地址

document:

document.title[="title"]  //文档数获取title
document.getElementById('id_name');     //获取节点
document.cookie;    //获取cookie

history:

history.forward()   //前进
history.back();     //后退

DOM对象

浏览器网页就是一个DOM节点,更新,遍历,删除,添加。

//取得三个节点
var h1=document.getElementsByTagName('h1');
var p1=document.getElementById('p1');
var p2=document.getElementsByClassName('p2');
var f1=document.getElementById('fa');
var childrens=f1.children;  //获取父节点下的子节点
childrens[index];	//获取第几个节点

更新:

let id1=document.getElementById('id1');
id1.innerText='name';   //更新文字
id1.innerHTML='<strong>213</strong>';   //插入html文本
id1.style.color='red';  //更改style

删除:

let father=document.getElementById('fa');
father.removeChild(p1); //通过父节点删除子节点
let p1=document.getElementById('p1');
let father=p1.parentElement;    //获取父元素
father.removeChild(father.children[0]); //删除多个节点的时候child在变化

创建插入:

<p id="test">22222</p>
<div id="fa">
    <h1>11111</h1>
    <p id="p1">p1</p>
    <p class="p2">p2</p>
</div>
    <script>
        let test=document.getElementById('test');
        let fa=document.getElementById('fa');
        let p1=document.getElementById('p1');
        fa.appendChild(test);   //追加:把test移入fa中
        let newp=document.createElement('p');   //创建新的p
        newp.setAttribute('id','newp'); //设置id为newp
        newp.id='newp'; //赋值
        newp.innerText="333";
        fa.appendChild(newp);   //末尾插入
        fa.insertBefore(test,p1);   //父节点插入一个新的节点在p1前面
        fa.replaceChild(test,p1);   //替换当前节点
        let mystyle=document.createElement('style');
        mystyle.setAttribute('type','text/css');
        mystyle.innerHTML="body{background-color:red;}";
        document.getElementsByTagName('head')[0].appendChild(mystyle);
    </script>

表单信息

<form action="post">
    <span>user_name:</span> <input type="text" id="username">
    <p>
        <span>sex:</span>
        <input type="radio" name="sex" value="male" id="boy"><input type="radio" name="sex" value="female" id="girl"></p>
</form>
<script>
    var input_test=document.getElementById('username');
    var boy=document.getElementById('boy');
    var girl=document.getElementById('girl');
    input_test.value;   //获取输入的值
    input_test.value='123';   //修改输入的值
    boy.value;  //返回默认值
    boy.checked;    //查看是否被选中false||true
</script>
<input type="hidden" id="md5_pwd" name="password">	//加一个hidden属性来隐藏密码
function f(){
    let user_name=document.getElementById('username');
    let password=document.getElementById('password');
    let md5_pwd=document.getElementById('md5_pwd');
    md5_pwd.value=md5(password.value);
    console.log(user_name.value);
    console.log(password.value);
    console.log(md5_pwd.value);
    return false;
}

jQuery

存在大量的JS代码,是一个库。

获取cdn jQuery(jQuery cdn加速 (jq22.com))

<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
//$(selector).action(),公式
$('#test').click(function (){
    alert('hello!');
});
$('p').click(); //标签选择器
$('#id').click(); //id选择器
$('class').click(); //类选择器

事件

$('p').onmousemove; //按下鼠标
$('p').onmousedown; //移动鼠标

操作DOM

$().text();
$().html();
$().css();


文章作者: Dydong
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Dydong !
  目录