作者:刘耀

部分内容参考一下链接

参考:

 http://www.cnblogs.com/wupeiqi/articles/5369773.html
http://javascript.ruanyifeng.com/oop/basic.html
http://www.cnblogs.com/gaojun/archive/2013/10/24/3386552.html

一、JavaScript简介

JavaScript一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在HTML(标准通用标记语言下的一个应用)网页上使用,用来给HTML网页增加动态功能。

二、组成部分

ECMAScript,描述了该语言的语法和基本对象

文档对象模型(DOM),描述处理网页内容的方法和接口。

浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口。

三、一些简单案例

注:显示结果请自行测试

1.简单的html输出

<script>
document.write('<h1>我是你耀哥</h1>')
</script>
此脚本请在开头测试,如果在尾部测试,那么会覆盖整个html页面

2.简单的点击按钮弹出提示

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
function func(){
alert('欢迎点击按钮') #alert是JavaScript用来测试用的函数 可以在浏览器中弹出信息
}
</script>
</head>
<body>
<button value="按钮" onclick="func()">按钮</button> #当我点击按钮的时候 onclick事件调用函数
</body>
</html>
当我点击按钮的时候,整个页面会弹出欢迎点击按钮信息

3.改变页面元素内容

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script>
function func(){
var x = document.getElementById('demo'); #获取id
x.innerHTML='我被改变了'; #innerHTML是用来改变标签中的内容
}
</script>
</head>
<body>
<p id="demo">我的是你耀哥</p>
<button value="按钮" onclick="func()">按钮</button> #onclick事件调用func函数
</body>
</html>

4.点击改变指定div的背景颜色

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<style> #定义样式 高宽100px;颜色是aquamarine;
#demo{
width:100px;
height:100px;
background-color:aquamarine;
}
</style>
</head>
<body>
<div id="demo" onclick="func()"></div>
<script>
function func(){
var x = document.getElementById('demo'); #获取id
x.style.backgroundColor='gray'; #使用style函数改变背景颜色
</script>
</body>
</html>

5.验证表单,是否输入值

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form>
<p>用户名:</p><input id="demotext" type="text"/>
<p>密 码:</p><input id="demopass" type="password"/></br>
<button onclick="func()">提交</button>
</form>
<script>
function func(){
var x = document.getElementById('demotext').value;
if(x.length==0){
alert('用户名不能为空');
}else{
alert(x);
}
var y = document.getElementById('demopass').value;
if(y.length==0){
alert('密码不能为空');
}else{
alert(y);
}
}
</script>
</body>
</html>

四、存在方式

HTML中的脚本必须位于 标签之间。

脚本可被放置在 HTML 页面的 和 部分中。

1.head中存放

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script>
alert('我是head中的脚本')
</script>
</head>
<body>
</body>
</html>

2.body中存放

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
alert('我是body中的脚本')
</script>
</body>
</html>

3.引入外部js文件

<!DOCTYPE html>
<html lang="en">
<body>
<script src="外部的js文件.js"></script>
</body>
</html>

注:

由于Html代码是从上到下执行,如果Head中的js代码耗时严重,就会导致用户长时间无法看到页面,如果放置在body代码块底部,那么即使js代码耗时严重,也不会影响用户看到页面效果,只是js实现特效慢而已。

五、基本语法

1.注释

单行注释 使用 “//”

//            var x = document.getElementById('demo');

多行注释 使用 “/*和*/结尾”
/*
function func(){
var x = document.getElementById('demotext').value;
if(x.length==0){
alert('用户名不能为空');
}else{
alert(x);
}*/

2.变量

变量定义要求:

1).变量必须以字母开头

2).变量也能以 $ 和 _ 符号开头(不过我们不推荐这么做)

3).变量名称对大小写敏感(y 和 Y 是不同的变量)

变量声明:

var 变量名 = 赋值
var 定义的是局部变量 js中用的最多的方法
如果不加var 那么是全局变量。js用的较少。
var a=1,b=2,c=3,

在 JavaScript 函数内部声明的变量(使用 var)是局部变量,所以只能在函数内部访问它。

3.数据类型

1).数字类型

var a = 1;
var b = 1.1;

2).布尔类型

布尔(逻辑)只能有两个值:true 或 false。
var x=true
var y=false

3)数组类型

第一种:
var arr=new Array();
arr[0]="mayun";
arr[1]="mahuateng";
arr[2]="liuyao";
第二种:
var arr=['mayun','mahuateng','liuyao'];
第三种:
var arr=new Array('mayun','mahuateng','liuyao');
用for循环打印数组内容
<script>
var arr=new Array();
arr[0]="mayun";
arr[1]="mahuateng";
arr[2]="liuyao";
for(i=0;i<arr.length;i++){
alert(arr[i])
}
</script>

4)undefined

undefined表示未定义值

5)null类型

null是一个特殊值

5)字符串类型

var name = 'liuyao';
var name = String("liuyao");
var name_age = String(18);

6)字典

var items = {'k1': v2, 'k2': 'v2'}

4.运算符

运算符 = 用于赋值。

运算符 + 用于加值。

1.算术运算符

2.赋值运算符

案例:

字符串拼接打印
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
txt1="liu yao";
txt2=" da sha bi";
txt3=txt1+txt2;
alert(txt3)
</script>
</body>
</html>

3.比较运算符

4.逻辑运算符

4.条件语句

1)if else

if 语句 - 只有当指定条件为 true 时,使用该语句来执行代码
if...else 语句 - 当条件为 true 时执行代码,当条件为 false 时执行其他代码
if...else if....else 语句 - 使用该语句来选择多个代码块之一来执行

语法:

if (条件)
{
只有当条件为 true 时执行的代码
}
或者:
if (条件){
只有当条件为 true 时执行的代码
}

案例:

<script>
var num2 = 3
if(num2>num1){
alert('num1大于num2');
}else{
alert('num2小于num1');
}
</script>
  1. if else if else

语法:

if (条件 1)
{
当条件 1 为 true 时执行的代码
}
else if (条件 2)
{
当条件 2 为 true 时执行的代码
}
else
{
当条件 1 和 条件 2 都不为 true 时执行的代码
}

案例:

<script>
var num = 5;
if(num>6){
alert('num大于6');
}else if(num<7){
alert('num小于7');
}else{
alert('以上都不对');
}

3)switch语句

switch 语句来选择要执行的多个代码块的其中一个。

语法:

switch(n)
{
case 1:
执行代码块 1
break;
case 2:
执行代码块 2
break;
default:
n 与 case 1 和 case 2 不同时执行的代码
}

首先设置表达式 n(通常是一个变量)。随后表达式的值会与结构中的每个 case 的值做比较。如果存在匹配,则与该 case 关联的代码块会被执行。请使用 break 来阻止代码自动地向下一个 case 运行。

案例:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input id="demo" type="text"/>
<button onclick="func()">数字查询</button>
<script>
function func(){
var x = document.getElementById('demo').value;
var y = Number(x);
switch(y){
case 1:
alert('你输入的是1');
break;
case 2:
alert('你输入的是2');
break;
case 3:
alert('你输入的是3');
break;
default:
alert('你输入的数不存在');
}
} </script> </body>
</html>

4)循环语句

JavaScript 支持不同类型的循环:

for - 循环代码块一定的次数

for/in - 循环遍历对象的属性

语法:

for (语句 1; 语句 2; 语句 3)
{
被执行的代码块
}
语句 1 在循环(代码块)开始前执行
语句 2 定义运行循环(代码块)的条件
语句 3 在循环(代码块)已被执行之后执行

案例:

循环打印十个数字
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
for(i=0;i<10;i++){
document.write("<h1>"+i+"</h1>");
}
</script>
</body>
</html> 循环数组打印内容
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var key = ['1','2','3','4','5'];
for(i in key){
document.write('<h1>'+i+'</h1>');
}
</script>
</body>
</html>

案例:循环数组

var names = ["liuyao", "mayun", "aoteman"];

// 数组:方式一
for(var i=0;i<names.length;i++){
console.log(i);
console.log(names[i]);
} // 数组:方式二
for(var index in names){
console.log(index);
console.log(names[index]);
} var names = {"name": "liuyao", "age": 18}; // 字典:方式一
for(var index in names){
console.log(index);
console.log(names[index]);
}

5)while语句

while - 当指定的条件为 true 时循环指定的代码块

do/while - 同样当指定的条件为 true 时循环指定的代码块

语法:

while (条件)
{
需要执行的代码
}

案例:

循环打印
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
var i = 1;
while(i<5){
document.write('<h1>'+i+'</h1>');
i++;
}
</script>
</body>
</html>

do/while 循环是 while 循环的变体。该循环会执行一次代码块,在检查条件是否为真之前,然后如果条件为真的话,就会重复这个循环。

语法:

do
{
需要执行的代码
}
while (条件);

6)break和Continue 语句

break 语句可用于跳出循环。如果之后有代码,那么继续执行:

案例:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
for (i=0;i<10;i++)
{
if (i==3)
{
document.write('break跳出了');
break;
}
document.write('<h1>'+i+'</h1>');
}
</script>
</body>
</html>

Continue 语句

continue 语句中断循环中的迭代,如果出现了指定的条件,然后继续循环中的下一个迭代。

案例:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
for (i=0;i<10;i++)
{
if (i==3)
{
document.write('break跳出了');
continue;
}
document.write('<h1>'+i+'</h1>');
}
</script>
</body>
</html>

5.异常操作

try 语句测试代码块的错误。
catch 语句处理错误。
throw 语句创建自定义错误。

语法:

try
{
//在这里运行代码
}
catch(err)
{
//在这里处理错误
}

案例:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
try {
adddlert("我是刘耀");
}
catch(err){
alert('错误')
}
</script>
</body>
</html>

6.函数

函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块。

案例:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<button onclick="func()">点击按钮执行函数</button>
<script>
function func(){
alert('func的函数')
}
</script>
</body>
</html>

语法

函数就是包裹在花括号中的代码块,前面使用了关键词 function:
function functionname()
{
这里是要执行的代码
}
注:提示:JavaScript 对大小写敏感。关键词 function 必须是小写的,
并且必须以与函数名称相同的大小写来调用函数。

不带参数函数:

function func(){
alert('func的函数')
}

自执行函数:

(function(arg){
alert(arg);
})('123');

调用带参数函数:

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<button onclick="func(1,2)">点击执行</button>
<script>
function func(num1,num2){ alert(num1);
alert(num2);
} </script>
</body>
</html>

带有返回值的函数:

在使用 return 语句时,函数会停止执行,并返回指定的值。

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script>
function func()
{
var x = 5;
return x;
}
var me = func();
alert(me);
</script>
</body>
</html>

7.js标准库

JavaScript 中的所有事物都是对象:字符串、数值、数组、函数..

1.数组对象

创建一个数组:

var arr = ['liu','yao','18']

length属性可设置或返回数组中元素的数目。

<script>
var arr = ['liu','yao','18'];
num = arr.length;
alert(num);
</script>
结果:3

constructor 属性返回对创建此对象的数组函数的引用。

<body>
<script>
var arr = ['liu','yao','18'];
con = arr.constructor;
alert(con);
</script>

concat()

方法用于连接两个或多个数组。

增加新元素
<script>
var arr = ['liu','yao','18'];
document.write(arr.concat('1','2','3'));
</script>
两个数组链接
<script>
var num1 = ['1','2','3'];
var num2 = ['4','5','6'];
document.write(num1.concat(num2));
</script>

join()方法用于把数组中的所有元素放入一个字符串。可以按照分隔符存放

<script>
var arr = new Array(3);
arr[0] = "liu";
arr[1] = "yao";
arr[2] = "yao";
document.write(arr.join())
</script>
按照分隔符
<script>
var arr = new Array(3);
arr[0] = "liu";
arr[1] = "yao";
arr[2] = "yao";
document.write(arr.join('----'))
</script>
显示结果:
liu----yao----yao

pop()删除并返回数组的最后一个元素

<script>
var num = ['liu','yao','18'];
document.write(num.pop())
</script>

push()向数组的末尾添加一个或更多元素,并返回新的长度。

<script>
var num = ['liu','yao','18'];
document.write(num.push('22102107'))
</script>

reverse()颠倒数组中元素的顺序。

<script>
var num = ['liu','yao','18'];
document.write(num.reverse())
</script>

shift() 删除并返回数组的第一个元素

<script>
var num = ['liu','yao','18'];
document.write(num.shift())
</script>

unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

<script>
var arr = ['1','2','3'];
alert(arr.unshift('4'));
</script>

slice()方法用于提取原数组的一部分,返回一个新数组,原数组不变。

它的第一个参数为起始位置(从0开始),第二个参数为终止位置(但该位置的元素本身不包括在内)。

如果省略第二个参数,则一直返回到原数组的最后一个成员。

<script>
var arr = ['1','2','3','4','5','6','7'];
alert(arr.slice(1,3));
</script>

splice方法用于删除原数组的一部分成员,并可以在被删除的位置添加入新的数组成员。它的返回值是被删除的元素。该方法会改变原数组。

splice的第一个参数是删除的起始位置,第二个参数是被删除的元素个数。如果后面还有更多的参数,则表示这些就是要被插入数组的新元素。

// 格式
arr.splice(index, count_to_remove, addElement1, addElement2, ...); <script>
var arr = ['1','2','3','4','5','6','7'];
alert(arr.splice(1,2,a,b));
</script>

sort() 对数组的元素进行排序

var arr = ['1','2','3'];
alert(arr.sort())

valueOf()方法返回数组本身。

var a = [1, 2, 3];
a.valueOf();

toString 方法返回数组的字符串形式。

var a = [1, 2, 3];
a.toString() var a = [1, 2, 3, [4, 5, 6]];
a.toString()

2.字符串对象

创建

var s = new String("abc");

new String("abc")

将任意类型的值转为字符串。

String(true)
String(5)

fromCharCode()。该方法根据Unicode编码,生成一个字符串。

<script>
alert(String.fromCharCode(104, 101, 108, 108, 111));
</script>

charAt方法返回一个字符串的给定位置的字符,位置从0开始编号。

<script>
var arr = 'abcde';
alert(arr.charAt(1));
</script>

charCodeAt方法返回给定位置字符的Unicode编码(十进制表示)。

<script>
var arr = 'abcde';
alert(arr.charCodeAt(1));
</script>

concat方法用于连接两个字符串。

<script>
var s1 = 'abc';
var s2 = 'def';
alert(s1.concat(s2));
</script>

substring()方法的第一个参数表示子字符串的开始位置,第二个位置表示结束结果。因此,第二个参数应该大于第一个参数。如果出现第一个参数大于第二个参数的情况,substring方法会自动更换两个参数的位置。

<script>
var arr = 'abcde';
alert(arr.substring('1','2'));
</script>

substr方法的第一个参数是子字符串的开始位置,第二个参数是子字符串的长度。

<script>
var arr = 'abcdefghi';
alert(arr.substr('2','5'));
</script>

slice方法的第一个参数是子字符串的开始位置,第二个参数是子字符串的结束位置。与substring方法不同的是,如果第一个参数大于第二个参数,slice方法并不会自动调换参数位置,而是返回一个空字符串。

<script>
var arr = 'abcdefghi';
alert(arr.slice('2','5'));
</script>

indexOf 和 lastIndexOf 方法

indexOf从字符串头部开始匹配,lastIndexOf从尾部开始匹配。

<script>
var arr = 'abcdefghi';
alert(arr.indexOf('b'));
</script> <script>
var arr = 'abcdefghi';
alert(arr.lastIndexOf('h'));
</script>

toLowerCase 和 toUpperCase 方法

toLowerCase用于将一个字符串转为小写,toUpperCase则是转为大写。

<script>
var arr = 'liuyao';
alert(arr.toUpperCase());
</script> <script>
var arr = 'LIUYAO';
alert(arr.toLowerCase());
</script>

trim()方法去除空格

<script>
var x = ' liuyao ';
document.write('|');
document.write(x);
document.write('|');
document.write(x.trim());#去除两边空格
</script>

查找和替换

match方法

match方法返回一个数组,成员为匹配的第一个字符串。如果没有找到匹配,则返回null。返回数组还有index属性和input属性,分别表示匹配字符串开始的位置(从0开始)和原始字符串。

<script>
var matches = "cat, bat, sat, fat".match("at");
document.write(matches);
document.write(matches.index);
document.write(matches.input);
</script>

search方法

search方法的用法等同于match,但是返回值为匹配的第一个位置。如果没有找到匹配,则返回-1。

<script>
var matches = "cat, bat, sat, fat".search("at");
document.write(matches);
</script>

replace方法

replace方法用于替换匹配的子字符串,一般情况下只替换第一个匹配(除非使用带有g修饰符的正则表达式)。

<script>
var matches = "cat, bat, sat, fat".replace("at","liuyao");
document.write(matches);
</script>

split方法

split方法按照给定规则分割字符串,返回一个由分割出来的各部分组成的新数组。

<script>
var matches = "cat|bat,|sat|fat".split("|");
document.write(matches);
</script>

Date对象

提供的日期和时间的操作接口。它有多种用法。

Date对象可以直接调用,返回一个当前日期和时间的字符串

<script>
document.write(Date());
</script>

等待更新。。。

JSON

JavaScript Object Notation的缩写,它是一种数据交换格式。

在JSON中,一共就这么几种数据类型:

number: 和JavaScript的number完全一致;
boolean:就是JavaScript的true或false;
string:就是JavaScript的string;
null: 就是JavaScript的null;
array: 就是JavaScript的Array表示方式——[];
object:就是JavaScript的{ ... }表示方式。

1.序列化

<script>
var info = {
name: '刘耀',
age: 18,
gender: true,
height: 1.65,
grade: null,
'middle-school': 'IT',
skills: ['JavaScript', 'Java', 'Python', 'Lisp']
};
document.write(JSON.stringify(info));
</script> 结果:
{"name":"刘耀","age":18,"gender":true,"height":1.65,"grade":null,"middle-school":"IT","skills":["JavaScript","Java","Python","Lisp"]}

2.反序列化

JSON.parse('[1,2,3,true]');
JSON.parse('{"name":"刘耀","age":18}');
JSON.parse('true');
JSON.parse('123.45');

8.面向对象编程

面向对象的语言有一个标志,即拥有类的概念,抽象实例对象的公共属性与方法,基于类可以创建任意多个实例对象,一般具有封装、继承、多态的特性!但JS中对象与纯面向对象语言中的对象是不同的,ECMA标准定义JS中对象:无序属性的集合,其属性可以包含基本值、对象或者函数。可以简单理解为JS的对象是一组无序的值,其中的属性或方法都有一个名字,根据这个名字可以访问相映射的值(值可以是基本值/对象/方法)。

基于Object对象

<script>
var person = new Object();
person.name = 'liuyao';
person.age = 18;
person.getName = function(){
return this.name;
};
var x = person.name;
alert(x);
</script>

1.工厂模式创建

<script>
function createPerson(name, age, job) {
var o = new Object();
o.name = name;
o.age = age;
o.job = job;
o.getName = function () {
return this.name;
};
return o;//使用return返回生成的对象实例
} var x = createPerson('liuyao','18','IT'); #实例化
alert(x.name);
</script>

注: 创建对象交给一个工厂方法来实现,可以传递参数,但主要缺点是无法识别对象类型,

因为创建对象都是使用Object的原生构造函数来完成的。

2、构造函数模式

<script>
function Person(name,age,job){
this.name = name;
this.age = age;
this.job = job;
this.getName = function () {
return this.name;
}
}
obj = new Person('liuyao','age','job');
document.write(obj.name+'</br>');
document.write(obj.age+'</br>');
document.write(obj.job+'</br>');
</script>

用自定义的构造函数(与普通函数一样,只是用它来创建对象),定义对象类型(如:Person)的属性和方法。它与工厂方法区别在于:

没有显式地创建对象

直接将属性和方法赋值给this对象;

没有return语句;

此外,要创建Person的实例,必须使用new关键字,以Person函数为构造函数,传递参数完成对象创建;实际创建经过以下4个过程:

创建一个对象

将函数的作用域赋给新对象(因此this指向这个新对象,如:person1)

执行构造函数的代码

返回该对象

3.前端笔记之JavaScript基础的更多相关文章

  1. 前端笔记之JavaScript(十二)缓冲公式&检测设备&Data日期

    一.JavaScript缓冲公式ease 原生JS没有自己的缓冲公式,但是你要自己推理的话,必须要懂一些数学和物理公式: 让div用100毫秒(帧),从left100px的位置变化到left800px ...

  2. 前端学习 之 JavaScript基础

    一. JavaScript简介 1. JavaScript的历史背景介绍 1994年,网景公司(Netscape)发布了Navigator浏览器0.9版.这是历史上第一个比较成熟的网络浏览器,轰动一时 ...

  3. 前端笔记之JavaScript面向对象(三)初识ES6&underscore.js&EChart.js&设计模式&贪吃蛇开发

    一.ES6语法 ES6中对数组新增了几个函数:map().filter().reduce() ES5新增的forEach(). 都是一些语法糖. 1.1 forEach()遍历数组 forEach() ...

  4. 前端笔记之JavaScript面向对象(一)Object&函数上下文&构造函数&原型链

    一.对象(Object) 1.1 认识对象 对象在JS中狭义对象.广义对象两种. 广义:相当于宏观概念,是狭义内容的升华,高度的提升,范围的拓展.狭义:相当于微观概念,什么是“狭”?因为内容狭隘具体, ...

  5. 前端笔记之JavaScript(十)深入JavaScript节点&DOM&事件

    一.DOM JavaScript语言核心.变量的定义.变量的类型.运算符.表达式.函数.if语句.for循环.算法等等.这些东西都属于语言核心,下次继续学习语言核心就是面向对象了.JavaScript ...

  6. 前端笔记之JavaScript(七)深入函数&DOM那点事

    一.函数补充 1.1 arguments类数组对象 arguments 是一个对应于传递给函数的参数的类数组对象. 在函数中,使用特殊对象 arguments,开发者无需明确指出参数名,就能访问它们. ...

  7. 前端笔记之JavaScript(六)让人头疼的正则表达式

    一.正则表达式 1.1正则概述和体验 正则表达式是被用来匹配字符串中的字符组合的模式,常用来做表单验证.在JavaScript中,正则表达式也是对象,是一种引用类型. 案例:正确输入一个电话号码,01 ...

  8. 前端笔记之JavaScript(四)关于函数、作用域、闭包那点事

    一.自定义函数function 函数就是功能.方法的封装.函数能够帮我们封装一段程序代码,这一段代码会具备某一项功能,函数在执行时,封装的这一段代码都会执行一次,实现某种功能.而且,函数可以多次调用. ...

  9. 前端笔记之JavaScript(一)初识JavaScript

    一.JavaScript简介 1.1网页分层 web前端一共分三层: 结构层 HTML         : 负责搭建页面结构 样式层 CSS          : 负责页面的美观 行为层 JavaSc ...

随机推荐

  1. 替换文件最后一行中的所有e 为 E

    #root@athena5plus:~# cat b    northwest       NW     Charles Main           3.0      .98      3      ...

  2. 【Gym 100712B】Rock-Paper-Scissors

    题 题意 对给定的对手的出拳顺序,如果只能按几个R,然后几个P,再几个S的顺序出拳(几个也可以是0个),那么求赢的方法有多少种. 分析 我原来想枚举P开始的位置和S开始的位置然后算得分,但是超时了o( ...

  3. 【BZOJ-1452】Count 树状数组 套 树状数组

    1452: [JSOI2009]Count Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1769  Solved: 1059[Submit][Stat ...

  4. asp.net 回发或回调参数无效的各种情况分析及解决办法

    昨天,在实现级联菜单的时候,突然出现一下错误: 回发或回调参数无效.在配置中使用 <pages enableEventValidation="true"/> 或在页面中 ...

  5. poj 3311 tsp入门

    题意:n+1个点:0--n,找一条路径从0点出发遍历1--n的点再回到0,每个点可经过不止一次,求最短路径 裸的TSP问题,先用Floyd求出各个点之间最短路,再状压dp即可 用n+1位二进制表示状态 ...

  6. 深入浅出MySQL双向复制技术

    设置MySQL数据同步(单向&双向)由于公司的业务需求,需要网通和电信的数据同步,就做了个MySQL的双向同步,记下过程,以后用得到再翻出来,也贴出来供大家参考. 一.准备服务器 由于MySQ ...

  7. 初学Hibernate持久化

    hibernate三种持久化对象状态:(持久化对象:Persistent Object=POJO + hbm映射) 1.瞬时状态(临时状态或自由态):PO对象刚创建(即new)开始进入瞬时状态,此时对 ...

  8. The Joys of Conjugate Priors

    The Joys of Conjugate Priors (Warning: this post is a bit technical.) Suppose you are a Bayesian rea ...

  9. hdu 1003 Max Sum(动态规划)

    解题思路: 本题在给定的集合中找到最大的子集合[子集合:集合的元素的总和,是所有子集合中的最大解.] 结果输出: 最大的子集合的所有元素的和,子集合在集合中的范围区间. 依次对元素相加,存到一个 su ...

  10. Python代码性能优化技巧

    摘要:代码优化能够让程序运行更快,可以提高程序的执行效率等,对于一名软件开发人员来说,如何优化代码,从哪里入手进行优化?这些都是他们十分关心的问题.本文着重讲了如何优化Python代码,看完一定会让你 ...