前端学习之JavaScript(1)

时间:2022-08-24 17:06:28

目录

一. JavaScript简介

1. JavaScript历史背景

布兰登 ·艾奇(Brendan Eich, 1961年~), 1995年在网景公司, 发明的JavaScript.

2. JavaScript和ECMAScript的关系

ECMAScript是一种由Ecma国际(前身为欧洲计算机制造商协会,英文名称是European Computer Manufacturers Association)制定的标准.

JavaScript是由公司开发而成的, 问题是不便于其他的公司拓展和使用. 所以欧洲的这个ECMA的组织, 牵头制定JavaScript的标准, 取名为ECMAScript.

简单来说, ECMAScript不是一门语言,而是一个标准. 符合这个标准的比较常见的有: JavaScript、Action Script(Flash中用的语言). 就是说, 你JavaScript学完了, Flash中的程序也就轻而易举了.

ECMAScript在2015年6月, 发布了ECMAScript 6版本, 语言的能力更强(也包含了很多新特性). 但是, 浏览器的厂商不能那么快去追上这个标准.

《ECMAScript 6 入门》 – 阮一峰 http://es6.ruanyifeng.com/

3. JavaScript入门易学性

JavaScript对初学者比较友好.

JavaScript是有页面效果的(比如C语言只有白底黑字).

JavaScript是弱变量类型的语言, 变量只需要用var来声明, 而Java中变量的声明, 要根据变量的类型来定义.

比如Java中需要定义如下变量:

int a;		//整数
float a; //单精度浮点数
double a; //双精度浮点数
String a; //字符串
boolean a; //布尔

而JavaScript中, 只用定义一个变量:

var a;

JavaScript不用关心其他的一些事情(比如内存的释放,指针等), 更关心自己的业务逻辑.

4. JavaScript是前台语言

JavaScript是前台语言, 而不是后台语言.

JavaScript运行在用户的终端网页上, 而不是服务器上, 所以我们称为"前台语言". JavaScript就是一个简单的制作页面效果的语言, 它服务于页面的交互效果, 美化, 绚丽, 但是不能操作数据库.

后台语言是运行在服务器上的, 比如PHP, ASP JSP等等, 这些语言都能够操作数据库, 都能对数据库进行"增删改查"操作.

5. JavaScript的组成

  • JavaScript基础分为三个部分:
    • ECMAScript: JavaScript的语法标准. 包括变量, 表达式, 运算符, 函数, if语句, for语句等.
    • DOM: 操作网页上的元素API. 比如让盒子移动, 变色, 轮播图等.
    • BOM: 操作浏览器部分功能的API. 比如让浏览器自动滚动.

PS: JS机械重复性的劳动几乎为0, 基础都是创造性的劳动, 而不像HTML, CSS中margin, padding都是机械重复劳动.

6. JavaScript的特点

  • (1) 简单易用: 可以使用任何文本编辑工具编写, 只需要浏览器就可以执行程序.

  • (2) 解释执行(解释语言): 事先不编译, 逐行执行, 无需进行严格的变量声明.

  • (3) 基于对象: 内置大量现成对象, 编写少量程序可以完成目标.

二. 第一个JavaScript代码

1. js引入

  • a. 在HTML页面中, 我们可以在body标签中放入如下标签对:
<script type="text/javascript">
//js代码段
</script>
  • b. 引入js文件
<script type="text/javascript" src="demo.js"></script>

2. 语法规则

学习程序, 是有规律可循的, 程序要遵循一定的准则, 这个准则就是: 语法.

  • (1) JavaScript对换行, 缩进, 空格不敏感

注意: 每一条语句末尾都要加上分号, 虽然分号不是必须的, 但为了程序今后要压缩, 如果不加分号, 压缩之后将不能运行.

  • (2) JavaScript中所有的符号都是英文字符, 不能是中文字符.
  • (3) JavaScript的注释:
    • a. 单行注释: //单行注释
    • b. 多行注释: /*多行注释*/

注意: sublime中, 单行注释的快捷键是ctrl+/, 多行注释的快捷键是ctrl+shift+/.

3. JavaScript中输出信息的写法

  • (1) 弹出警告框: alert语句
<script type="text/javascript">
alert("娃哈哈")
</script>
  • (2) 控制台输出: console.log()

console表示"控制台", log表示"输出", 控制台在Chorme浏览器的F12中, 控制台是程序员调试程序的地方, 程序员经常使用这条语句输出一些东西, 来测试程序是否正确.

  • (3)用户输入: prompt()语句

prompt()就是专门用来弹出能够让用户输入的对话框, 代码如下:

<script type="text/javascript">
var a = prompt("今天是什么天气?");
console.log(a);
</script>

上方代码中, 用户输入的内容, 将被传递给变量a.

prompt()语句中, 用户不管输入的是什么内容, 都是字符串类型的.

  • (4) alert和prompt的区别:
alert("从前有座山");		// 直接使用,不需要变量
var a = prompt("请输入一个数字:"); // 必须用一个变量来接收用户输入的值

4. 变量

(1) 变量的声明和赋值
var a = 10;

var是英语"varient"(变量)的缩写, 后面要加一个空格, 空格后面的东西就是"变量名".

  • 定义变量: var就是一个关键字, 用来定义变量. 所谓关键字, 就是有特殊功能的小词语. 关键字后面一定要有空格隔开.
  • 变量的赋值: 等号表示赋值, 将等号右边的值, 赋给左边的变量.
  • 变量名: 我们可以自定义一个变量的名字.

注意:

  • a. 在JavaScript中, 永远都是用var来声明变量, 这和C, Java等语言不同.
  • b. 变量要先定义, 才能使用. 比如, 我们不设置变量, 直接输出的话, 控制台将会报错, 一般有经验的程序员, 会把声明和赋值写在一起, 例如:
var a = 10; //声明一个变量a,并把10赋值给a
(2) 变量的命名规范
  • a. 变量名有命名规范: 只能由英语字母, 数字, 下划线, 美元符号$构成, 且不能以数字开头, 并且不能是JavaScript保留字.
  • b. 下列的单词, 叫做保留字, 就是说不允许当作变量名, 了解即可:
    abstract、boolean、byte、char、class、const、debugger、double、enum、export、extends、final、float、goto、
  implements、import、int、interface、long、native、package、private、protected、public、short、static、super、
  synchronized、throws、transient、volatile
  • c. 大写字母是可以使用的, 并且大小写敏感, 也就是说A和a是两个变量.
(3) 变量的类型

变量里面能够存储数字, 字符串, 变量会自动的根据存储内容的类型不同, 来决定自己的类型.

  • a. 数值型: number

如果一个变量中存放了数字, 那么这个变量就是数值型的, 如下示例:

var a = 100;			//定义了一个变量a, 并且赋值为100
console.log(typeof a); //输出a变量的类型, typeof()表示"获取变量的类型"

PS: 在JavaScript中, 只要是数, 就是数值型(number)的. 无论整数, 浮点数, 无论大小, 无论正负, 都是number类型的.

  • b. 字符串型: string

用单引号或者双引号包裹起来的字符, 如下示例:

var a = "abcde";
var b = "路飞学城";
var c = "123456";
var d = "", //空字符串
console.log(typeof a, typeof b, typeof c, typeof d);
//打印结果: string string string string
  • c. 连字符和加号的区别

键盘上的+可能是连字符, 也可能是数字的加号, 如下:

console.log("大" + "逗" + "比");  //连字符,把汉字连在一起,输出结果: 大逗比
console.log("大+逗+比"); //原样输出: 大+逗+比
console.log("你这个" + 2 + "B" + "青年"); //输出: 你这个2B青年
console.log(1 + 2 + 3); //先计算再输出结果: 6

总结:如果加号两边都是数值, 此时是加, 否则就是连字符.

(4) 变量值的传递(赋值)
a = b;  //把b的值赋给a, b的值不变
(5) 变量格式的转换

parseInt()可以将字符串转化成数字, 例如: parseInt("5");

  • parseInt还具有以下特性:

    • a. 带有自动净化的功能: 只保留字符串最开头的数字, 后面的中文自动消失, 例如:
    console.log(parseInt("2018小马哥你真帅!"));  //输出: 2018
    • b. 带有自动截断小数的功能: 只截取整数部分. 例如:
    var a = parseInt(5.8) + parseInt(4.7);
    console.log(a); //输出: 9
    var b = parseInt(5.8 + 4.7);
    console.log(b); //输出: 10

三. 基本数据类型

数据类型包括: 基本数据类型引用数据类型.

基本数据类型指 的是简单的数据段, 引用数据类型指的是有多个值构成的对象.

当我们把值赋值给一个变量时, 解释器首先要判断的就是这个值是基本数据类型还是引用数据类型.

1. 基本数据类型

  • a. number(数字对象)
var a = 123;
caosole.log(typeof a) //输出: number
//注意特殊情况: Infinity(无限大)是 number 类型的
var b = 5/0; //很显然 5/0 是一个无限大的数字
console.log(b); //Infinity
console.log(typeof b) //number
  • b. string(字符串对象)
var str = "123";
console.log(typeof str) //string
  • c. boolean(布尔对象)
var b1 = false;
console.log(typeof b1); //boolean
  • d. null(空对象)
var c1 = null;  //空对象
console.log(typeof c1) //object
  • e. undefined(未定义对象)
var d1;  //只声明未赋值表示变量为定义
console.log(typeof d1) //undefined

2. 引用数据类型

引用数据类型有以下几种, 后面再来介绍.

  • Function(函数)
  • Object(对象)
  • Array(数组)
  • String(字符串)
  • Date(日期)

四. 运算符

1. 赋值运算符

=, +=, -=, *=, /=, %=

2. 算数运算符

+, -, *, /, %, ++, --

3. 比较运算符

==(比较双方的值), ===(比较双方的值和数据类型), !=, !==, <, >, <=, >=.

注意: ==(!=)比较的是值, ===(!==)比较的是值和数据类型, 例如:

var s = "1";
var n = 1;
console.log(s == n); //true
console.log(s === n); //false

4. 字符串拼接和字符串运算的特殊情况

  • a. 字符串类型的数值 和 数值类型相减 结果是数值, 例如:
var a = "3";
var b = 2;
console.log(a - b); // 1
  • b. NaN( not a number )是一个number类型
var b1 = "one";
var b2 = "two";
ret = b1 * b2;
console.log(ret, typeof(ret)) //NaN number
  • c. 字符串拼接
var name = "伊拉克";
var am = "美军";
// 字符串拼接
var str = "3月20日," + name + "战争爆发,以" + am + "为主的联合部队击溃了军队.";
console.log(str);
// 输出结果: 3月20日,伊拉克战争爆发,以美军为主的联合部队击溃了军队. // es6的模块字符串,tab键上面的反引号``,添加变量使用${变量名}
var str1 = `3月20日,${name}战争爆发,以${am}为主的联合部队击溃了军队.`;
console.log(str1);
// 输出结果: 3月20日,伊拉克战争爆发,以美军为主的联合部队击溃了军队.

五. 数据类型转换

语言中我们的数据类型有很多, 在某个页面中展示的数据类型也不同, 比如说电话号码就要求number类型, 而姓名就要求string类型的. 那么在适当的情况下我们可以将数据类型进行转换.

1. 将数值类型转换成字符串类型

  • a. 隐式转换
var n1 = 123;
var n2 = "123";
var n3 = n1 + n2;
console.log(n3) // 输出结果: 123123
console.log(typeof n3) //输出结果: string
  • b. 强制类型转换: String(), toString
var n1 = 123;
var str1 = String(n1);
console.log(str1, typeof(str1)); //输出结果: 123 string var num = 234;
str2 = num.toString()
console.log(str2, typeof(str2)); //输出结果: 234 string

2. 将字符串类型转换成数值类型: Number(), parseInt(), parseFloat()

var stringNum = "789.123qazwsx";
var str = "666";
console.log(Number(stringNum), Number(str)) //输出结果: NaN 666
console.log(parseInt(stringNum)) //输出结果: 789
console.log(parseFloat(stringNum)) //输出结果: 789.123

3. 任何数据类型都可以转换为boolean类型

// 非假(0)即真
var b1 = "123"; //true
var b2 = 0; //false
var b3 = -123; //true
var b4 = Infinity; //true
var b5 = NaN; //false
var b6; //false
var b7 = null; //false

六. 流程控制

1. if, if-else, if-else if-else

  • a. if语句, 例如:
var age = 20;
if(age >= 18){
console.log("您已成年,游戏时间无限制")
};
console.log("hello world"); //这里的代码还会执行
  • b. if-else, 例如:
var age = 20
if(age >= 18){
console.log("您已成年,游戏时间无限制")
}else{ //这里的代码不会执行
console.log("对不起,您还未成年.今天的游戏时间已达到上限")
}
  • c. if-else if-else, 例如:
if(true){
//满足条件执行这段代码
}else if(true){
//满足条件执行这段代码
}else if(true){
//满足条件执行这段代码
}else{
//满足条件执行这段代码
}

2. 逻辑与(&&), 逻辑或(||)

  • a. 模拟: 如果 "总分 > 400分" 并且 "数学成绩 > 89分" 则被清华大学录取, 例如:
var sum = 405;
var math = 91;
if(sum > 400 && math > 90){
console.log("成功被清华大学录取")
}else{
alert("高考失利")
}
  • b. 模拟: 如果 "总分 > 500分" 或者 "英语 > 85分" 则被复旦大学录取, 例如:
if(sum > 500 || english > 85){
console.log("成功被复旦大学录取")
}else{
alert("高考失利")
}

3. switch语句

var gameScore = "better";
switch(gameScore){
case "good":
console.log("玩得很好");
break; // break表示退出,若不写则直到下一个break才退出(break穿透)
case "better":
console.log("玩的老牛逼了");
break;
case "best":
console.log("恭喜你,吃鸡成功");
break;
default:
console.log("很遗憾,你失败了")
}

4. while循环, do-while循环

  • a. while循环, 例如:
var i = 1;  //初始化循环变量
while(i <= 9){ //判断循环条件
console.log(i);
i += 1; //改变循环条件
}

练习: 将1~100所有偶数在控制台打印出来, 如下代码:

var i = 1;
while(i <= 100){
if (i % 2 == 0){
console.log(i);
}
i += 1;
}

b. do-while循环, 例如:

//不管有没有满足while中的条件,do里面的代码都会先执行一次
var i = 1; //初始化循环变量
do{ //do内部开始循环
console.log(i);
if(i == 4){
console.log("不太吉利")
}else if(i == 8){
console.log("恭喜发财")
}
i++; //改变循环条件
}while(i < 10) //判断循环条件

5. for循环

for(var i = 1; i <= 10; i++){
console.log(i)
}
  • 练习: 将1-100之间的所有偶数打印在控制台, 如下代码:
for(var i = 1; i <= 100, i++){
if(i % 2 == 0){
console.log(i)
}
}
  • 练习: 将1-100之间所有数之和打印在控制台, 如下代码:
sum = 0;
for(var i = 1; i <= 100; i++){
sum += i
}
console.log(sum); //输出结果: 5050
  • 练习: 在浏览器中输出直角三角形, 如下代码:
for(var i = 1; i <= 6; i++){
for(var j = 1; j <= i; i++){
document.write("*")
}
document.write("<br>");
}
  • 练习: 在浏览器中输出等腰直角三角形, 如下代码:
for(var i = 1; i <= 6; i++){	//控制行数
//控制空格数
for(var s = i; s < 6; s++){
document.write("&nbsp;")
}
for(var j = 1; j <= 2*i-1; j++){
document.write("*")
}
document.write("<br>")
}

七. 常用内置对象

JavaScript中的所有事物都是对象: 字符串, 数值, 数组, 函数...此外, JavaScript允许自定义对象.

JavaScript提供多个内建对象, 比如String, Date, Array等等. 对象只是带有属性和方法的特殊数据类型.

1. Array(数组)对象

  • (1)数组的创建有两种方式

    • a. 字面量方式, 推荐使用这种方式, 简单便捷, 例如:
    var colors = ["red", "green", "yellow"];
    • b. 构造函数的方式, 使用new关键词对构建函数进行创建对象, 例如:
    var colors = new Array();
  • (2)数组的赋值

var arr = [];
//通过下标(索引)进行赋值
arr[0] = 123;
arr[1] = "嘿嘿";
arr[2] = "哈哈";
  • (3)数组的常用方法和示例
方法或属性 描述
concat() 连接两个或更多的数组,并返回结果
join() 把数组的所有元素放入一个字符串
toString() 把数组转换为字符串,并返回结果
slice(start,end) 选取数组的一部分,并返回一个新数组
pop() 删除数组的最后一个元素,并返回删除的元素
push() 向数组的末尾追加一个或更多元素,并返回新的长度
reverse() 反转数组的元素顺序
sort() 对数组的元素进行排序
shift() 删除并返回数组的第一个元素
unshift() 向数组的开头添加一个或更多元素,并返回新的长度
Array.isArray(待测) 判断对象是否为数组
length 数组的一个属性,设置或返回数组元素的个数
var north = ["北京", "山东", "天津"];
var south = ["东莞", "深圳", "上海"];
var newCity = north.concat(south);
console.log(newCity); //["北京", "山东", "天津", "东莞", "深圳", "上海"]
var score = [98, 78, 76, 100, 0];
var str = score.join("|");
console.log(str); // 98|78|76|100|0 str1 = score.toString();
console.log(str1); // "98,78,76,100,0"
var arr = ["张三", "李四", "王五", "赵六"];
var newArr = arr.slice(1, 3);
console.log(newArr); // ["李四", "王五"] arr.pop();
console.log(arr); // ["张三", "李四", "王五"] arr.push("小马哥");
console.log(arr); // ["张三", "李四", "王五", "小马哥"]
var names = ["alex", "wusir", "xiaoma", "angle"];
names.reverse();
console.log(names); // ["angle", "xiaoma", "wusir", "alex"]
var names = ["alex", "wusir", "xiaoma", "angle"];
names.sort(names);
console.log(names); // ["alex", "angle", "wusir", "xiaoma"]
var arr = ["张三", "李四", "王五", "赵六"];
arr.shift();
console.log(arr); // ["李四", "王五", "赵六"] arr.unshift("小马哥");
console.log(arr); // ["小马哥", "李四", "王五", "赵六"]
var arr = [1];
console.log(Arrar.isArray(arr)); // true

2. String(字符串)对象

方法 含义
charAt() 返回指定索引的字符
concat() 返回字符串值,表示两个或多个字符串的拼接
replace(a,b) 字符串b替换了字符串a
indexOf() 返回某个指定的字符串值在字符串中首次出现的位置,没有则返回-1
slice(start,end) 返回startend-1之间的字符串,索引从0开始
split() 把字符串分割为字符串数组
substr(start,end) 字符串截取,顾头不顾尾
toLowerCase() 返回一个新的字符串,该字符串的字母都变成了小写
toUpperCase() 返回一个新的字符串,该字符串的字母都变成了大写
match() 查找到一个或多个正则表达式的匹配
search() 查找与正则表达式相匹配的值
var str = 'hello';
var charset = str.charAt(1);
console.log(charset); // e
var str1 = 'al';
var str2 = 'ex';
console.log(str1.concat(str2, str1)); // alexal
var a = "123456789";
var newStr = a.replace("456", "***");
console.log(newStr); // 123***789
var str = 'world';
console.log(str.indexOf('o')); // 1
console.log(str.indexOf('a')); // -1
var str = '正能量';
console.log(str.slice(1,2)); // 能
var str = '我的天呢,a你在说什么呢?a哈哈哈';
console.log(str.split('a')); // ["我的天呢,", "你在说什么呢?", "哈哈哈"]
var str = '我的天呢,a是嘛,你在说什么呢?a哈哈哈';
console.log(str.substr(0,4)); // 我的天呢
var str = 'XIAOMAGE';
console.log(str.toLowerCase()); // xiaomage
var str = 'xiaomage';
console.log(str.toUpperCase()); // XIAOMAGE

3. Date(日期)对象

创建日期对象只有构造函数一种方式, 使用new关键字, 例如:

var myDate = new Date();	//创建了一个Date对象

常用方法和示例:

方法 含义
Date() 根据本地时间返回当天的日期和时间
getFullYear() 根据本地时间返回指定日期对象的年份(四位数年份时返回四位数字)
getMonth() 根据本地时间返回指定日期对象的月份(0-11)
getDate() 根据本地时间返回指定日期对象的月份中的第几天(1-31)
getDay() 根据本地时间返回指定日期对象的星期中的第几天(0-6)
getHours() 根据本地时间返回指定日期对象的小时(0-23)
getMinutes() 根据本地时间返回指定日期对象的分钟(0-59)
getSeconds() 根据本地时间返回指定日期对象的秒数(0-59)
toLocaleString() 据本地时间格式,把Date对象转换为字符串
var myDate = new Date();
console.log(Date());
console.log(myDate.getFullYear());
console.log(myDate.getMonth());
console.log(myDate.getDate());
console.log(myDate.getDay());
console.log(myDate.getHours());
console.log(myDate.getMinutes());
console.log(myDate.getSeconds());
console.log(myDate.toLocaleString());

4. Math(算数)对象

方法 含义
Math.ceil() 向上取整,称为"天花板函数"
Math.floor() 向下取整,称为"地板函数"
Math.min(a,b) 求a和b中的最小值
Math.max(a,b) 求a和b中的最大值
Math.random() 随机数,默认0-1之间(包括0,不包括1)的随机数,公式min+Math.random()*(max-min)表示min~max之间的数
var x = 1.234;
var a = Math.ceil(x);
var b = Math.floor(x);
console.log(a, b); // 2 1
console.log(Math.min(3, 8));	// 3
console.log(Math.max(3, 8)); // 8
var ran = Math.random();
console.log(ran); // 大于等于0 小于1 的数
ran2 = 100 + Math.random() * 100; // min + Math.random() * (max - min)
console.log(ran2); // 100-200之间的随机数

八. 函数

函数就是将一些语句进行封装, 然后通过调用的方式, 执行这些语句.

  • 作用:
    • 将大量重复的语句写在函数里, 以后需要这些语句的时候, 可以直接调用函数, 避免重复劳动.
    • 简化编程, 让编程模块化.

1. 函数的定义

function 函数名(){
//函数体
}
  • function: 是一个关键字, 中文是"函数","功能"的意思.
  • 函数名: 命名规范和变量的命名规范是一样的, 只能是字母, 数字, 下划线, 美元符号, 不能以数字开头.
  • 参数: 后面有一对小括号, 里面是放参数用的.
  • 函数体: 函数体放在大括号里面, 是这个函数的语句.

2. 函数的调用

函数名();

3. 函数的参数

函数的参数包括形参和实参(实际参数和形式参数的个数要相同), 例如:

sum(3, 4);
sum("3", "4");
sum("Hello", "World");
// 函数: 求和
function sum(a, b){
console.log(a + b);
}

4. 函数的返回值

console.log(sum(3, 4));
// 函数: 求和
function sum(a, b){
return a + b;
}

前端学习之JavaScript(1)的更多相关文章

  1. web前端学习:JavaScript学习指南

    JavaScript是一种属于网络的脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果.通常JavaScript脚本是通过嵌入在HTML中来实现 ...

  2. 前端学习之JavaScript

    JavaScript的历史 1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言) Net ...

  3. 前端学习 之 JavaScript基础

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

  4. 前端学习笔记-JavaScript

    js引入方式: 1.嵌入js的方式:直接在页内的script标签内书写js功能代码. <script type="text/javascript">alert('hel ...

  5. web前端学习&lpar;二&rpar; javascript对象和原型继承

    目录 1. JavaScrpt对象 2. 原型对象和继承 3. 对象的克隆 (1)javascript对象 在JS中,对象是属性的容器.对于单个对象来说,都由属性名和属性值构成:其中属性名需要是标识符 ...

  6. 【前端学习】javascript面向对象编程&lpar;继承和复用&rpar;

    前言       继承,代码复用的一种模式.和其它高级程序语言相比,javascript有点点不一样,它是一门纯面向对象的语言,在JS中,没有类的概念,但也可以通过原型(prototype)来模拟对象 ...

  7. 前端学习之JavaScript中的 NaN 与 isNaN

    NaN NaN 即 Not a Number ,不是一个数字. 在 JavaScript 中,整数和浮点数都统称为 Number 类型 .除此之外,Number 类型还有一个很特殊的值,即 NaN . ...

  8. 前端学习之-- JavaScript

    JavaScript笔记 参考:http://www.cnblogs.com/wupeiqi/articles/5602773.html javaScript是一门独立的语言,游览器都具有js解释器 ...

  9. 前端学习 之 JavaScript DOM 与 BOM

    一. DOM介绍 1. 什么是DOM? DOM:文档对象模型.DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构. 目的其实就是为了能让js操作html元素而制定的一个规范. DOM就 ...

随机推荐

  1. bzoj 4318 OSU&excl;

    期望dp. 考虑问题的简化版:一个数列有n个数,每位有pi的概率为1,否则为0.求以每一位结尾的全为1的后缀长度的期望. 递推就好了. l1[i]=(l1[i-1]+1)*p[i]+0*(1-p[i] ...

  2. Git之VS2010实践

    对于我们经常在VS2010下编程的开发人员来说,强大的SCM工具Git貌似对我们很陌生.对于Git,我在我的另一篇博客<Git学习笔记>中已做过介绍,下面我再简单介绍一下Git在VS201 ...

  3. 算法与数据结构实验题6&period;4 order (二叉树)

    1.题目: 2.代码: #include<iostream> #include<algorithm> using namespace std; struct Node { in ...

  4. BZOJ-1066 蜥蜴 最大流&plus;拆点&plus;超级源超级汇

    1066: [SCOI2007]蜥蜴 Time Limit: 1 Sec Memory Limit: 162 MB Submit: 2582 Solved: 1272 [Submit][Status] ...

  5. startInstrumentation asks to run as user -2 but is calling from user 0&semi; this requires android&period;permission&period;INTERACT&lowbar;ACROSS&lowbar;USERS&lowbar;FULL

    由于手头上一直没有android level 17及以上版本的手机,有一个shell命令启动脚本的BUG,发生在SDK level 17及以上 API>=17中加入了INTERACT_ACROS ...

  6. 【BZOJ】1059&colon; &lbrack;ZJOI2007&rsqb;矩阵游戏(二分图匹配)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1059 本题可以看出,无论怎样变化,在同一行和同一列的数永远都不会分手---还是吐槽,,我第一眼yy了 ...

  7. 【转】C&plus;&plus;析构函数为什么要为虚函数

    注:本文内容来源于zhice163博文,感谢作者的整理. 1.为什么基类的析构函数是虚函数? 在实现多态时,当用基类操作派生类,在析构时防止只析构基类而不析构派生类的状况发生. 下面转自网络:源地址  ...

  8. 用httpPost对JSON发送和接收的例子

    HTTPPost发送JSON: private static final String APPLICATION_JSON = "application/json";         ...

  9. Spring MVC与easyui国际化

    1.建立资源文件 在webapp下建立文件夹language,在其中再添加file,命名分别为language.properties,language_en.properties,language_z ...

  10. &lpar;原创&rpar;spring mvc和jersey rest 组合使用时单例对像实例化两次的BUG及解决办法

    项目中没用spring 的restTemplate 而是采用 jersey来做rest 的实现,一直用着,也没发现有什么不对,后来加入了,以quartz用硬编码方式实现,结果启动项目的时候报错 ,具体 ...