JavaScript快速入门

1.快速入门

1.1引入JavaScript

1.内部标签
<script>//...
</script>
2.外部引入

qj.js

alert('hello,world');

引入

<script src="js/qj.js">
</script>

测试

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><!--script标签内写js代码-->
<!--    <script>alert('hello,world');</script>--><!--外部引入--><!--script必须成对标签--><!--javascript不用显示定义type,默认就是javascript--><script src="js/qj.js"></script>
</head>
<body></body>
</html>

2.基本语法入门

<!--JavaScript严格区分大小写-->
<script>//1.定义变量 var 变量名 =变量值var score=88;var name='张三';console.log(name);//控制台输出//2.条件控制if(score>60 && score<70){alert("60~70");}else if(score>70 && score<80){alert("70~80");}else {alert("other");}/*** 多行注释*/
</script>

3.数据类型

数值,文本,图形,音频,视频。。。

变量

var _$ =值

number

js不区分小数和整数,Number

123//整数
123.1//浮点数
1.123e3//科学计数法
-99//负数
NaN//not a number
Infinity//无限大

字符串

‘abc’ “abc”

‘\n’

布尔值

true , false

逻辑运算

&& 两个都为真结果为真

|| 一个为真结果为真

!取反

比较运算符

=赋值

==等于(类型不一样,值一样,,会判断为true)

===绝对等于(类型一样值一样,结果为true)

注意:NaN===NaN,这个与所有的数值都不相等,包括自己,只能通过isNaN判断

浮点数问题

<script>console.log((1/3)===(1-2/3));
</script>

尽量避免使用浮点数进行运算,存在精度问题

console.log(Math.abs(1/3-(1-2/3))<0.000000000001);

null和undefined

  • null空
  • undefined未定义

数组

Java的数组必须是相同类型的对象,js不需要

//保证代码的可读性,尽量使用[]
var arr=[1,,2,3,4,5,'hello',null,true];
new Array(1,2,3,4,5,'hello',null,true);

取数组下标越界,就会报undefine

对象

数组是中括号,对象是大括号

每个属性需要逗号隔开,最后一个不需要

var person={name: "qinjiang",age: 3,tags: ['js','java','web','...']
}

取对象的值

person.name

4.严格检查模式

'use strict';//严格检查模式,预防JavaScript的随意性导致产生的一些问题
//局部变量建议使用let定义
//全局变量
var i=1;
//ES6 let
let a=2;

'use strict’必须写在JavaScript的第一行

5.数据类型

5.1字符串

1.正常字符串使用单引号,或者双引号包裹

2.注意转义字符\

\'
\n
\r
\u4e2d Unicode字符
"\x41" Ascll

3.多行字符串

var msg=`
hello
world
`

4.模板字符串

let name="zhangsan";
let age=3;
let msg=`你好啊,${name}`;

5.字符串长度

console.log(str.length)

6.字符串的可变性,不可变

7.大小写转换

msg.toLocaleUpperCase();
msg.toLocaleLowerCase();

8.msg.indexOf();获取指定下标

9.msg.substring(1);从到一个截取到最后

msg.substring(1,2);//[1,2)

5.2数组

Array可以包含任意的数据类型

var arr=[1,2,3,4,5,6];

1.长度

arr.length;

注意:假如给arr.length赋值,数组大小就会发生变化,如果赋值过小,元素就会丢失

2.indexof

arr.indexOf();

字符串的“1”和数字1是不同的

3.slice()截取Array的一部分,返回一个新数组

arr.slice(1,3);[1,3)

4.push(),pop()

push压入到尾部pop弹出尾部的一个元素

5.unshift(),shift()头部

unshift:压入头部
shift:弹出头部的一个元素

6.排序

arr.sort()

7.元素反转

arr.reverse()

8.concat()数组拼接

arr.concat(1,2,3)//并没有修改数组,只是返回一个新数组

9.连接符join()

打印拼接数组,使用特定字符串连接

arr.join('-');

10.多维数组

arr[[12],[3]];
arr[1,1];

数组:存储数据(如何存,如何取,方法可以自己实现)

5.3对象

若干个键值对

let 对象名={属性名: 属性值,属性名: 属性值,属性名: 属性值
};let person={name: "wushuang",age: 3,sex: 1,score: 99
};

Js中对象,{…}表示一个对象。键值对描述属性xxx: xxx,多个属性之间使用逗号隔开,最后一个属性不加逗号

JavaScript中所有的键都是字符串,值是任意对象

1.对象赋值

person.name="wushaung"
'wushaung'

2.使用一个不存在的对象属性,不会报错

undefined

3.动态的删减属性,通过delete删除对象的属性

delete person.name
true
person
{age: 3, sex: 1, score: 99}

4.动态的添加,直接给新的属性添加值即可

person.a="aa"

5.判断属性值是否在这个对象中 xxx in xxx

'age' in person
true
'toString' in person
true

继承的父类的方法也可以找到

6.判断一个属性是否是这个对象自身的

person.hasOwnProperty('age')
true
person.hasOwnProperty('toString')
false

5.4流程控制

if判断

var age=3;
if(age>3){alert("hh");
}else {alert("ww");
}

while循环,避免死循环

var age=3;while (age<100){age +=1;console.log(age);
}do{age +=1;console.log(age);
}while(age<100)

for循环

var age=3;for (let i = 0; i < 100; i++) {console.log(i);
}

forEach循环 5.1

var age=[1,2,3,4,5,6,7,8];
//函数
age.forEach(function (value) {console.log(value)
})

for in

 var age=[1,2,3,4,5,6,7,8];
for(var num in age){console.log(age[num])
}

出的是索引

5.5Map和Set

Map:

//学生的成绩,学生的名字
var map=new Map([['tom',100],['jack',90],['haha',80]]);
var name=map.get('tom'); //通过key获取value
map.set('admin',123456);//新增或者修改
console.log(name);
map.delete //删除一个元素

Set:无序不重复

var set=new Set([3,1,1,1,1,1]);//set可以去重
set.add(2); //添加
set.delete(1);//删除
console.log(set.has(3));//是否包含某个元素

5.6iterator es6

通过for…of获取值

for…in获取下标

var arr=[3,4,5];
for (var x of arr){console.log(x);
}

遍历map

var map=new Map([['tom',100],['jack',90],['haha',80]]);
for(let x of map){console.log(x)
}

遍历set

var set=new Set([1,2,3,4,5,6,7]);
for(let x of set){console.log(x)
}

6.函数

6.1,定义函数

定义方式一

绝对值函数

function abs(x){if(x>=0){return x;}else{return -x;}
}

一旦执行到return,代表函数结束,返回结果

如果没有执行return,函数执行完也会返回结果,结果就是undefined

定义方式二

var abs=function(x){if(x>=0){return x;}else{return -x;}
}

调用函数

abs(10)
abs(-10)

参数问题:JavaScript可以传任意个参数,也可以不传递参数

参数进来是否存在的问题:假设不存在参数,先判断

function abs(x){if(typeof x!='number'){throw 'not a number';//手动抛出异常来判断}if(x>=0){return x;}else{return -x;}
}

arguments

arguments是一个JS免费赠送的关键字

多个参数时,可以通过arguments遍历出来

代表传递进来的所有参数,是一个数组,可以拿到隐藏的参数

function abs(x){if(arguments.length>1){console.log(arguments[1]);}if(typeof x!='number'){throw 'not a number';}if(x>=0){return x;}else{return -x;}
}

问题:arguments会包含所有的参数,有时候只想使用除当前参数来进行操作,需要排除当前已有的参数。

rest

获取除了已经定义的参数之外的所有参数…

以前:

function aaa(a, b) {console.log("a=>"+a);console.log("b=>"+b);if(arguments.length>2){for (let i=2;i<arguments.length;i++){console.log(arguments[i]);}}
}

现在:

function aaa(a, b,...rest) {console.log("a=>"+a);console.log("b=>"+b);console.log(rest);
}

rest参数只能写在最后,必须用…标识

6.2,变量的作用域

JavaScript中,var定义变量实际是有作用域的

假设在函数体中声明,则在函数体外不可使用~(闭包)

function qj() {var x=1;x=x+1;
}
x=x+1;//Uncaught ReferenceError: x is not defined

如果两个函数使用相同的变量名,只要在函数内部,就不影响

 function qj() {var x=1;x=x+1;}
function qj2() {var x=1;x=x+1;
}

内部函数可以访问外部函数的成员,外部不能访问内部

function qj() {var x=1;x=x+1;function qj2() {var y=x+1; //2}var z=y+1; //Uncaught ReferenceError: y is not defined
}

内外函数变量同名,由内向外查找,假设外部存在,同名的函数变量,内部函数会屏蔽外部函数的变量

 function qj() {var x=1;x=x+1;function qj2() {var x='a'; //2console.log('inner'+x);}qj2();console.log('outer'+x);
}

提升变量的作用域

// 'use strict'function qj() {var x='x'+y;console.log(x);var y='y';
}

结果:xundefined

说明:Js执行引擎,自动提升y的声明,但是不会提升变量y的赋值

定义变量先声明再赋值,所有的变量都放在头部,不用乱放,便于维护

var x,y,z,h;

全局函数

'user strict'
//全局变量
var x=4;
function f() {console.log(x);
}
f();
console.log(x);

全局对象windows

var x='xxx';
alert(x);
alert(window.x);//默认所有的全局变量,都会自动绑定在window对象中

alter()这个函数,本身也是window的一个变量

// 'user strict'
var x='xxx';
alert(x);
alert(window.x);//默认所有的全局变量,都会自动绑定在window对象中
var old_alter= window.alert;
//old_alter(x);
window.alert=function () {};
//发现alter()失效
window.alert(123);//恢复
window.alert=old_alter;
window.alert(456);

JavaScript实际上只有一个全局作用域,任何变量(函数也可以视为变量),假设没有在函数范围内找到,就会向外查找,如果没有在全局作用域中找到,就会报错ReferenceError

规范:

由于所有的全局变量都会绑定到window上,如果不同的js文件,使用了相同的全局变量,减少冲突

//唯一全局变量
var WuShuang={};
//定义全局变量
WuShuang.name='无双';
WuShuang.add=function (a,b) {return a+b;
}

把自己的代码全部放到自己定义的唯一空间命名中,降低全局命名冲突的问题

局部作用域

function aaa() {for (var i = 0; i < 100; i++) {console.log(i);}console.log(i+1);//i 出了作用域还能用
}

使用let关键字,解决局部作用域冲突

function aaa() {for (let i = 0; i < 100; i++) {console.log(i);}console.log(i+1);//i 出了作用域还能用
}

建议使用let

常量const

在ES6,只有用全部大写命名的就是常量,建议不要修改

var  PI='3.14';
console.log(PI);
PI='222';
console.log(PI);

发现可以改变这个值

const PI='3.14';//只读变量
console.log(PI);
PI='222';//直接报错

6.3,方法

定义方法:方法就是把函数放到对象的里边,对象只有两个东西,属性和方法

var wushuang={name: '无双',birth: 2001,age: function () {//今年-出生var now=new Date().getFullYear();return now-this.birth;}
}
//属性
wushuang.name
//方法,一定带()
wushuang.age()

this.始终指向调用它的人

拆开上代码

function getAge() {//今年-出生var now=new Date().getFullYear();return now-this.birth;
}
var wushuang={name: '无双',birth: 2001,age: getAge()
}

this是无法指向的,默认指向调用它的对象

apply

在js中控制this指向的对象

function getAge() {//今年-出生var now=new Date().getFullYear();return now-this.birth;
}
var wushuang={name: '无双',birth: 2001,age: getAge
};
getAge.apply(wushuang,[]);//this指向了wushuang,参数为空

7.内部对象

标准对象

typeof 123
'number'
typeof true
'boolean'
typeof NaN
'number'
typeof []
'object'
typeof {}
'object'
typeof Math.abs
'function'
typeof aa
'undefined'

7.1,Date

基本使用

var now =new Date(); //Wed Jun 22 2022 14:18:38 GMT+0800 (中国标准时间)
now.getFullYear();//年
now.getMonth();//月
now.getDate();//日
now.getDay();//星期几
now.getHours();//时
now.getMinutes();//分
now.getMinutes();//秒now.getTime();//时间戳 1970 1.1 0:00::

转换

new Date(1655878718669);//时间戳转换为时间now.toLocaleString()//获取本地时间,注意调用的是方法,不是属性
'2022/6/22 14:18:38'

7.2,Json

在JavaScript一切皆为对象,任何js支持的类型都可以用JSON来表示:

格式:

  • 对象都用{}
  • 数字都用[]
  • 所有的键值对 都是用key:value

JSON字符串和JS对象的转化

var user={name: "无双",age: 3,sex: '男'
}
//对象转换为JSON字符串
var jso_user=JSON.stringify(user);
//json字符串转换为对象
var obj=JSON.parse('{"name":"无双","age":3,"sex":"男"}');

JSON和JS对象区别

var obj={a : 'b',b : 'hellob'};
var json='{"a":"hello","b":"hellob"}'

7.3,Ajax

  • 原生的js xhr异步请求
  • JQuery $(#nname).ajax(“”)
  • axios请求

8.面向对象编程

原型:父类

var user={name: "无双",age: 3,run: function () {console.log(this.name+"run....");}
}
var xiaoming={name: "小明"
}
//原型对象
var Bird={fly: function () {console.log(this.name+"fly....");}
}
// 小明的原型是user
xiaoming.__proto__= Bird;

class继承

function Student(name) {this.name=name;
}
//给 student 新增方法
Student.prototype.hello=function () {alert('hello');
}
//ES6之后
// 定义一个学生的类
class Student{constructor(name){this.name=name;}hello(){alert('hello');}
}
xiaoming.name
'小明'
xiaoming.hello()

继承

// 定义一个学生的类
class Student{constructor(name){this.name=name;}hello(){alert('hello');}
}
class pupil extends Student{constructor(name,grade){super(name);this.grade=grade;}myGrade(){alert('我是一名小学生');}
}
var xiaoming=new Student("小明");
var xiaohong=new pupil("张三",2);

本质还是原型

原型链

__ proto __

9.操作BOM对象

JavaScript和浏览器的关系

JavaScript诞生就是未来让他在浏览器中运行

BOM:浏览器对象模型

window

window代表浏览器窗口

window.alert(1)
undefined
window.innerHeight
406
window.innerWidth
1396
window.outerWidth
1536
window.outerHeight
816

navigator

navigator封装了浏览器信息

navigator.appName
'Netscape'
navigator.appVersion
'5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
navigator.platform
'Win32'

大多时候,不使用navigator对象,因为会被人为修改

不建议使用这些属性来判断和编写代码

screen

代表屏幕的尺寸

screen.width
1536px
screen.height
864px

location

location代表当前的URL信息

host: "localhost:63342"
hostname: "localhost"
href: "http://localhost:63342/JavaScript/lesson02/class%E7%BB%A7%E6%89%BF.html?_ijt=4hdtbo9kftmj9u5hg2l3t8lrki"
port: "63342"
protocol: "http:"location.reload()//刷新网页
location.assign('https://www.bilibili.com/')//设置新地址

document

document代表当前页面,HTML DOM文档树

获取具体的 文档树节点

<dl id="app"><dt>Java</dt><dd>JavaSE</dd><dd>JavaEE</dd>
</dl><script>var dl=document.getElementById('app');
</script>

可以获取客服端的cookie

document.cookie

劫持cookie

服务端可以设置cookie为httpOnly

history

代表浏览器的历史记录

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

10.操作DOM对象

DOM:文档对象模型

核心

浏览器网页就是一个Dom树形结构

  • 更新:更新Dom节点
  • 遍历dom节点:得到dom节点
  • 删除一个节点
  • 添加一个新的节点

要操作一个Dom节点,就必须要先获得这个Dom节点

//对应css选择器
var h1=document.getElementsByTagName('h1');//标签选择器
var p1=document.getElementById('p1');
var p2=document.getElementsByClassName('p2');
var father=document.getElementById('father');
var children=father.children//获取父节点下的所有节点
// father.firstChild;
// father.lastChild;

原生代码,之后尽量使用jquery

更新节点

  • id1.innerText=‘123’ 修改文本值
  • id1.innerHTML=‘123’ 可以解析html标签

操作css

  • id1.style.color=‘red’ 操作css样式 使用驼峰命名

删除节点

删除节点步骤,先获取父节点,再删除自己

father.removeChild(p1)
//删除是一个动态的过程
father.removeChild(father.children[0])

可以直接通过父节点删除子节点,也可以通过子节点得到父节点,删除多个节点的时候,children是在时刻变化的

插入节点

我们获得某个Dom节点,假设这个dom节点是空的,我们通过innerHTML就可以增加一个元素了,但是这个DOM节点已经存在元素了就不能使用了,因为会发生覆盖

追加

<p id="js">JavaScrpt</p>
<div id="list"><p id="JavaEE">JavaEE</p><p id="JavaSE">JavaSE</p><p id="JavaME">JavaME</p>
</div>
<script>let js = document.getElementById('js');let list = document.getElementById('list');list.append(js);//追加到最后
</script>

创建新节点

<script>let js = document.getElementById('js');let list = document.getElementById('list');let newp = document.createElement('p');newp.id='newp';newp.innerText='hello,world';list.append('newp');//创建一个标签节点,通过这个标签可以设任意值let myScript = document.createElement('script');myScript.setAttribute('type','text/javascript');</script>

插入一个节点

<script>let js = document.getElementById('js');let list = document.getElementById('list');let newp = document.createElement('p');newp.id='newp';newp.innerText='hello,world';list.append('newp');//创建一个标签节点let myScript = document.createElement('script');myScript.setAttribute('type','text/javascript');// var body=document.getElementsByTagName('body');// body[0].setAttribute('style','background-color:red');let mystyle = document.createElement('style');mystyle.setAttribute('type','text/css');mystyle.innerText='body{ background-color: green;}';let head = document.getElementsByTagName('head');head[0].appendChild(mystyle);</script>

insert

<script>let se = document.getElementById('JavaSE');let js = document.getElementById('js');let list = document.getElementById('list');list.insertBefore(js,se);//新节点,插入位置节点
</script>

11.操作表单

获取表单信息

<script>var text_input=document.getElementById('username');var boy_redio=document.getElementById('boy');var girl_redio=document.getElementById('girl');//得到输入框的值text_input.value;//修改输入框的值text_input.value='222';//对于单选框,多选框等,固定的值,xxx.value只能获得当前的值boy_redio.checked;//查看结束是否是true 如果为true则被选中</script>

MD5加密

<!--表单绑定 使用return 进行校验判断-->
<form action="#" method="post" onsubmit="return aaa()"><table><tr><td>用户名:</td><td><input type="text" id="username" name="username"></td></tr><tr><td>密码:</td><td><input type="password" id="password" ></td></tr><tr><td><input type="hidden" id="md5_password" name="password"></td></tr><tr><td><button type="submit" >登录</button></td></tr></table><script>function aaa() {let uname = document.getElementById('username');let pwd = document.getElementById('password');let md5pwd = document.getElementById('md5_password');md5pwd.value=md5(pwd.value);return true;}</script>
</form>

使用隐藏域,不会出现显示密码变长

12.jQuery

jQuer库,里面有大量的javascript

获取jQuery

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>
</head>
<body></body>
</html>

使用

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><!--<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script>--><script src="lib/jquery-3.6.0.js"></script>
</head>
<body>
<!--公式:$(选择器).action()--><a href="" id="test-jquery">点我</a><script>//css选择器$('#test-jquery').click(function () {alert('hello,jQuery');})
</script>
</body>
</html>

选择器

//原生js,选择器少
//标签选择器
document.getElementsByTagName();
//id
document.getElementById();
//类
document.getElementsByClassName();//jQuery css 中的选择器 它全部能用
$('p').click()//标签
$('#id1').click()//id
$('.class2').click()//class

文档工具站:https://jquery.cuishifeng.cn/

事件

鼠标事件,键盘事件,其他事件

鼠标事件:

  • mousedown事件:鼠标按下触发

  • mouseup事件:松开鼠标时触发

  • mouseover事件:点击结束触发

  • mousemove事件:鼠标移动触发

  • mouseenter事件:光标进入元素上时触发。

  • mouseleaver事件:用户的光标离开元素时触发。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><script src="lib/jquery-3.6.0.js"></script><style>#divMove{width: 450px;height: 450px;border: 2px solid aquamarine;}</style>
</head>
<body>
<!--获取鼠标当前坐标-->
mouse: <span id="mouseMove"></span>
<div id="divMove">在这里移动鼠标试试
</div><script>//当网页元素加载元素之后响应事件$(function () {$('#divMove').mousemove(function (e) {$('#mouseMove').text('x:'+e.pageX+'y:'+e.pageY);})});
</script>
</body>
</html>

键盘事件

1.keydown()事件
当按钮被按下时,发生 keydown 事件。

2.keypress()事件
keypress 当按钮被按下时,会发生该事件,我们可以理解为按下并抬起同一个按键。

3.keyup事件
keyup 事件会在按键释放时触发,也就是你按下键盘起来后的事件

操作DOM

$('#test-ul li[name="python"]').text();//获取值
$('#test-ul li[name="python"]').text('sss');//设置值$('#test-ul').html();//获得值$('#test-ul').html('<strong>123</strong>');//操作值

css的操作

3.6版本是:

如果低版本是,隔开

$('#test-ul li[name="python"]').css({"color":"red"});

元素显示和隐藏

$('#test-ul li[name="python"]').hide();//show()显示 hide()隐藏
$('#test-ul li[name="python"]').toggle();//显示与隐藏 交换

JavaScript快速入门相关推荐

  1. JavaScript快速入门(四)——JavaScript函数

    函数声明 之前说的三种函数声明中(参见JavaScript快速入门(二)--JavaScript变量),使用Function构造函数的声明方法比较少见,我们暂时不提.function func() { ...

  2. JavaScript快速入门(1)

    JavaScript快速入门 详情百度百科 1. 什么是javaScript 2.快速入门 2.1.js引入方法 2.2. javaScript 的基本语法入门 2.3.数据类型 2.4.严格检查模式 ...

  3. 前端三大技术 HTML、CSS、JavaScript 快速入门手册

    听到前端技术,不少朋友一定会感到有些陌生.但其实,前端,你每天都在接触. 你正在使用的APP,你正在浏览的网页,这些你能看到的界面,都属于前端. 而前端最重要的三大技术,HTML,CSS,JavaSc ...

  4. 狂神JavaScript快速入门学习笔记

    狂神视频地址 1什么是JavaScript JavaScript是一门世界上最流行的脚本语言 2快速入门 2.1 引入JavaScript 1 内部标签 <script>alert('he ...

  5. 3.JavaScript快速入门

    1.什么是JavaScript 1.概述 是一门世界上最流行的脚本语言 Java和 JavaScript 一个合格的后端人员 必须精通JavaScript 2.历史 ECMAScript是JavaSc ...

  6. javaScript快速入门(笔记)

    该笔记大部分搬运B站遇见狂神说的javaScript,顺便把图文合并记录,便于回顾 视频地址:[狂神说Java]JavaWeb入门到实战_哔哩哔哩_bilibili记得三连          目录 1 ...

  7. 2、JavaScript快速入门

    2.1 引入JavaScript 内部标签 <!-- 在script标签内写JavaScript(简称js)代码,代码块可以放在head中,也可以放在body中--> <script ...

  8. 三:JavaScript快速入门(脚本开发方向)

    跳转总目录 文章目录 1.js简介 2.js入门 2.1 变量 介绍 变量的声明 2.2 运算符 2.3 数据类型 3.js判断 4.js循环 for循环 While循环 do while循环 5.j ...

  9. JavaScript 快速入门教程

    文章目录 1.JavaScript 简介 2.JavaScript 用法 2.1.在 `<head>` 或者 `<body>` 的 JavaScript 2.2.外部的 Jav ...

  10. JavaScript快速入门(六)——DOM

    概念扫盲 DOM DOM是 Document Object Model(文档对象模型)的缩写,是W3C(万维网联盟)的标准. DOM 定义了访问 HTML 和 XML 文档的标准: "W3C ...

最新文章

  1. 《网管员必读》学习笔记之DNS服务器的安装与配置
  2. js如何动态的加载js文件
  3. 优化tableView性能(针对滑动时出现卡的现象)
  4. 光刷题不参加这些算法竞赛?太亏了!
  5. Linux根据名称批量杀死进程-pkill
  6. linux程序调试命令strace
  7. 用Java读取/写入压缩和非压缩文件
  8. Linux 修改IP及虚拟网卡配置详解
  9. php 创建zip,php生成zip压缩文件的实例详解
  10. Crontab 计划任务
  11. .NET中将图片文件流转成Base64字符串的实现
  12. win10电脑显示无法自动修复此计算机,win10系统无法自动修复此计算机的操作步骤...
  13. 全新卡盟系统PHP版 集成易支付_2020易支付系统/聚合支付系统源码/免签约聚合支付系统/集成易支付相互对接...
  14. 智能信息处理专业是干嘛的?
  15. win10安装steam有损计算机,Win10安装steam平台提示“steam fatal error”报错的解决方法...
  16. 安卓怎么转移到iphone_如何将联系人从iPhone转移到另一部电话
  17. 构建风控评分卡模型介绍(WOE/KS/ROC)
  18. 什么软件可以使Excel数字转换成条形码
  19. 技术外部创新的类型和要素
  20. 扦插技术图解_爱之蔓平卧扦插法(图解)

热门文章

  1. 自己动手写操作系统——开发环境搭建
  2. Session超时设置
  3. C语言实现--背包问题 算法(Knapsack Problem)
  4. 视频编辑软件(Nero Video2021中文版) v23.0.1.12pjb
  5. python万年历代码_利用python实现万年历
  6. 点到点短信WAPPUSH研究总结
  7. loadrunner11 java脚本_LoadRunner11开发Java Vuser协议脚本
  8. 数字电子技术之逻辑函数的化简及表示
  9. 态密度(PDOS)曲线和声子色散曲线(PDC)之间的关系
  10. 小萝贝控机大师工具推荐(一款在PC就能控制手机界面的工具)