JavaScript笔记

第一章  JavaScript 简介

1.1  什么是JavaScript

1.1.1  JavaScript 的诞生

        1995年,由网景公司聘请的程序员Brendan Eich开发了JavaScript。

JavaScript笔记_第1张图片

1.1.2  JavaScript 与 Java 的关系

        网景公司这种浏览器脚本最初叫 Mocha。

        1951年9月改名为LiveScript。同年12月,网景公司与Sun公司达成协议,后者允许将这种语言叫做JavaScript。

        1996年3月网景浏览器(现火狐浏览器)2.0浏览器正式内置JavaScript脚本语言。 

                                         

JavaScript笔记_第2张图片

                                    

1.1.3  为什么学习 JavaScript

        JavaScript语言的特点:

JavaScript笔记_第3张图片

        (1)简单性

        JavaScript语法简单,很多语法借鉴Java和C++的语法。除了语法简单外JavaScript的开发环境也简单,只需要 文本编辑器就可以编写JavaScript程序。它不需要对开发环境做过多的配置,快速入门是这种语言的最大特点。

        (2)安全性

        JavaScript语言主要是用来完成浏览器与访问者之间的交互效果,并不会涉及数据存储服务器、网络文档修改或删除等功能。JavaScript 本身没有操作数据的功能,所以说学习JavaScript 这门语言本身是“非常安全”的。

        (3)广泛性

        JavaScript可以应用于被浏览器解析的Web端,也可以作为后端语言使用,还可以用于构建移动端APP等。此外JavaScript还可以用来构建桌面应用,世界上最流行的2D游戏引擎之一Cocos2d和最流行的3D游戏引擎之一Unity3D均可以由JavaScript来开发。

        (4)开放性

        JavaScript属于客户端脚本语言,可以在浏览器中直接查看其源代码,对于学习和借鉴都很有帮助,可以说JavaScript这门语言具有完全的开放性。

1.2  JavaScript的特性

1.2.1  语言特性

        JavaScript 语言特性如图所示:

JavaScript笔记_第4张图片

        (1)解释型 

        编译型语言在计算机运行代码前,先把代码翻译成计算机可以理解的文件,如 Java、C++等属于编译型语言;而解释型语言则不同,解释型语言的程序不需要在运行前编译,只需在运行程序时编译即可,如:JavaScript、PHP 等属于解释型语言。

        解释型语言的优点是可移植性比较好,只要有解释环境,可在不同操作系统上运行。代码修改后即可运行,无序编译,上手方便、快速。但缺点是需要解释环境,运行起来比编译型语言满,占用资源多,代码效率低。

        (2)弱类型

        弱类型语言是相对强类型语言而言的。在强类型语言中,变量类型有很多种,如 int、char、float、boolean 等,不同的类型相互转换有时需要强制转换。而 JavaScript 只有一种类型 var,当其为变量赋值时会自动判断类型并转换,因此 JavaScript 是弱类型语言。

        弱类型语言的优点是易于学习、语言表达简单易懂、代码更优雅、开发周期更短、更加偏向逻辑设计。缺点是程序可靠性差、调试繁琐、变量不规范、性能低下。

        (3)动态性

        动态性语言是指在变量定义时不一定进行赋值操作,只需在使用时作赋值操作即可。这种方式使得代码更灵活、方便。在 JavaScript 中有多处会用到动态性,如获取元素、原型等。

        (4)事件驱动性

        JavaScript 可以直接对用户或客户输入做出响应,无须经过 Web 程序。它对用户的响应以事件驱动的方式进行,即由某种操作动作引起相应的事件响应,如单击、拖动窗口、选择菜单等。

        (5)跨平台性

        JavaScript 依赖于浏览器本身,与操作环境无关。只要计算机上可以运行浏览器,并且浏览器支持 JavaScript,即可正确执行,从而实现"编写一次,走遍天下"。

1.2.2  JavaScript 与 ECMAScript 的关系 

        ECMAScript 和JavaScript 的关系为前者是后者的规范,后者是前者的实现。

1.2.3  JavaScript 与 HTML 和 CSS 的关系

        JavaScript 语言主要用来完成浏览器与访问者之间的交互效果,需要与HTML、CSS配合使用,三者就像板凳的三条腿,缺一不可。Web 前端三大核心技术的关系,如图所示。

JavaScript笔记_第5张图片

        如果想要对JavaScript语言有更深入的理解,需要对HTML和CSS有一定的认知。 那么,三者是如何进行分工的呢?下面用一个盖 房子的例子来描述三者之间的关系,首先需要把房子 的地基和骨架搭建好,即良好的结构(HTML);然后给房子刷上油漆和添加窗户,对房子样式进行美化(CSS);最后给房子添加电梯和地暖,与住户进行一些行为上的交互(JavaScript),这样房子才算搭建完毕。总而言之,首先通过 HTML 搭建网页的结构,然后用CSS设置网页的样式,最后通过 JavaScript 添加网页的交互效果,从而完成整个前端的开发过程。

        具体分工如下:HTML 负责结构、CSS负责样式、JavaScript负责行为。根据 W3C组织规定的Web 标准,应该尽可能地让三者进行分离式开发,最后再整合到一起,从而实现最终的效果。

1.2.4  JavaScript 的组成

        JavaScript 的组成包含三大部分,分别为 ECMAScript、DOM和BOM。JavaScript的组成如图1.6所示。

JavaScript笔记_第6张图片

         1. ECMAScript

         ECMAScript 是 JavaScript 语言的规范,是 JavaScript 的核心内容,它描述了语言的基本语法和数据类型等。ECMAScript 是一套标准,规范了 JavaScript 编码方式与语言特性。

         2. DOM

        文档对象模型(Document Object Model,DOM)是 W3C 组织推荐的处理可扩展标记语言(HTML或XML)的标准编程接口(API)。网页上组织页面(或文档)的对象被组织在一个树形结构中,通过DOM操作的方式可以让页面跟JavaScript进行通信交互。DOM树展示,如图1.7所示。

JavaScript笔记_第7张图片

         通俗地说,DOM就是获取或设置HTML和CSS代码的功能实现。通过下面的示例可以看出HTML页面的每个部分都是一个节点的衍生物,具体示例代码如下:



	
		
		demo
	
	
		

hello JavaScript!

         DOM通过创建树来表示文档中所有的标签结构(即节点),从而使开发者对文档的内容和结构具有空前的控制力。用 DOM API 可以轻松地删除、添加和替换节点。

         3.BOM

        浏览器对象模型(Browser Object Model,BOM)是对浏览器窗口进行访问和操作的 功能接口。例如,弹出新的浏览器窗口、获取浏览器信息等。注意,BOM 是作为 JavaScript 的一部分而不是作为 W3C 组织的标准,每款浏览器都有自己的实现方式,这会导致 BOM 代码的兼容性不如ECMAScript 和 DOM 代码的兼容性。

1.3  编写第一个JavaScript程序

1.3.1  JavaScript 编辑工具

· Dreamweaver,它是由Adobe公司出品。

· Sublime Text,它是由程序员 Jon Skinner开发的。

· WebStorm,它是由JetBrains公司出品。

· HBuilder,它是由DCloud公司出品。

1.3.2  JavaScript 在 HTML 的引入方式

        CSS在HTML 中有三种引入方式,JavaScript与CSS在HTML 中的引入方式完全相同,如下所示。

        1.行间引入方式(行内式)

行间引入方式是通过HTML标签的属性进行操作,一般不推荐使用,因为它违背了Web标准中规定的结构、样式、行为三者分离开发的原则,接下来通过案例演示行间JavaScript展示效果,具体如例1-1所示。

         【例1-1】 行间JavaScript展示效果。



	
		
		编写第一个JavaScript程序
	
	
		
单击

        运行结果如图:

JavaScript笔记_第8张图片

         在 Chrome 浏览器下运行上面的代码,当单击<div>标签时,会弹出一个提示窗口,显示设置的文本内容。其中onclick属性表示单击相应事件,alert()表示弹出窗口方法,括号中的内容为弹出内容。

        2.内部引入方式(内嵌式)

        内部引入方式是通过<script>标签的方式进行设置,类似于CSS中的<style>标签引入方式,接下来通过案例演示内部 JavaScript 展示效果,具体如例1-2所示。

         【例1-2】 内部JavaScript展示效果。



	
		
		编写第一个JavaScript程序
	
	
		
	

        运行结果图:

JavaScript笔记_第9张图片

         

3.外部引入方式(外链式)

        外部引入方式,也是通过<script>标签的方式进行设置,但引入的是一个外部JavaScript文件,通过 src 属性引入链接的地址。类似于 CSS 中的<link>标签引入方式,具体示例代码如下:

         执行代码和展示效果都与内部引入方式类似,只是采用一个外部的 JavaScript 文件,这样可以在多个页面中共享同一段 JavaScript 代码。

1.3.3  注释、空格、分号

         JavaScript 中的注释分为单行代码注释和多行代码注释两种,下面将分别介绍这两种注释方式。

        单行注释:

        多行注释:

1.3.4  JavaScript 调试控制台

        一般情况下,可以利用 alert()方式打印 JavaScript 计算后的值,从而进行程序的测试。但alert()方式会阻止后续代码的执行,连续测试会很不方便。JavaScript中提供了另外一种测试方式,即console.log()方式。此方式与alert)类似,可以打印出相关的值,但二者的区别在于console.log()方式不会阻止后续代码的运行。因此,console.log()方式适合做连续的输出操作。         如果想要查看 console.log()方式打印的数据值,需要通过浏览器自带的调试控制台打印输出。例如Chrome浏览器,按F12键即可打开调试控制台。接下来通过案例演示Chrome浏览器调试控制台,具体如例1-3所示。

       【例1-3】 Chrome 浏览器调试控制台。



	
		
		编写第一个JavaScript程序	
	
	
		
	

        运行效果: 

JavaScript笔记_第10张图片

         首先编写例1-3,然后在Chrome浏览器中运行当前案例,运行后再按F12键,打开Chrome 浏览器内置的调试工具,然后选择 Console选项,即可以查看到例1-3中console.log()语法中的代码信息。

        如果尝试添加多个 console.log()代码输出,可以看到同时执行多条语句。但是如果尝试添加多个alert()代码输出时,只会弹出一个提示框,只有当单击提示框的"确认"按钮后,才会执行下一次的弹窗提示。

第二章  JavaScript 基本语法

2.1  变量

2.1.1  关键字与保留字

        在 JavaScript 中提供了很多关键字,每个关键字都具有特定的用途,因此,不能将这些关键字定义为变量名。JavaScript常见关键字如下表:

JavaScript中常见的关键字
break do instanceof var
case else new void
catch finally return while
continue for swith with
debugger function this delete
default if throw
in try typeof

        除上表中的关键字,还有部分单词不能用作变量的命名。JavaScript 语言的部分语法在当前版本中可能并未得到使用,但是很可能出现在后续版本中,通常将这部分语法称为 JavaScript 中的保留字。JavaScript中的保留字如下表所示:

JavaScript中的保留字
abstract enum int short
boolean export interface static
byte extends long super
char final native synchronized
class float package throws
const goto private transient
double import public

        在定义变量名时,应尽量避免出现 JavaScript 关键字与保留字。本质上来讲,关键字与保留字为同一概念,但在JavaScript 中,关键字是指已经被系统使用的保留字,而保留字是指未被系统使用的关键字。

2.1.2  命名规则

        JavaScript变量名命名要遵循一定的规则,其具体规则如下:

         · 不能是关键字或保留字。

         · 第一个字符,可以是任意字母、下画线(_)、美元符($)。

         · 第二个字符及后面的字符,除了字母、美元符号和下画线,还可以用数字0~9。

         · 中文是合法的变量名,但应尽量避免使用。

         下面通过示例演示 JavaScript 命名规则,具体示例代码如下:

var for = '';            //✘(for为关键字)
var enum = '';           //✘(enum为保留字)
var 1foo = '';           //✘(第一个字符不能是数字)
var $foo = '';           //√ 
var _foo = '';           //√ 
var 苦艾酒 = '';         //√(尽量不用中文命名)

        在定义变量时,可以采用一些常见的命名法,具体方法如下:

         · 驼峰命名法:第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写。

         · 匈牙利命名法:开头字母用变量类型的缩写,其余部分用变量的英文或英文的缩 写,要求单词第一个字母大写(类型将在后面章节中进行讲解)。

         · 下画线命名法:通过下画线连接多个单词。

         下面分别用三种常见的命名方法进行命名,具体示例代码如下:

var fooBar = '';         //驼峰命名法
var sFoo = '';           //匈牙利命名法
var foo_bar = '';        //下划线命名法
2.1.3  规范与简写

        在 JavaScript 中定义变量,分为显式声明和隐式声明,其中显式声明通过 var 的方式定义,而隐式声明则不需要通过var的方式定义。具体示例代码如下:

var foo = '';        //显式变量
var bar = '';        //隐式变量

        在JavaScript规范中规定,所有变量必须均采用式声明的方式定义,这样才能避免出现隐式定义变量。 JavaScript语言的代码是严格区分大小写的,因此,下面示例代码表示了两个不同的变量,具体示例代码如下:

var foo = '';
var Foo = '';

        当定义多个变量时,可以分别进行定义,也可以通过简写的方式进行定义,用逗号隔开多个变量。具体示例代码如下:

var foo = '',bar = ''; //简单定义 foo 和 bar

        通常可能会遇到一种错误的写法,具体示例代码如下:

var foo = bar = '';

2.2  数据类型

         在 JavaScript 语言中把变量值也进行了划分,划分出来的不同类型值,称为数据类型。 

2.2.1  类型划分

         JavaScript 的数据类型分为 number、string、boolean、object、undefined、null 六种。

        1.number

        number类型表示数字类型,用于存储数字。数字可分为整型(int)和浮点型(float),整型用于表示整数,浮点型用于表示小数。具体示例代码如下:

var foo = 123;   //数字类型的整型
var bar = 3.14;  //数字类型的浮点型

         2. string 

         string 类型表示字符串类型。字符串是由 Unicode 字符集子集构成的序列,在 JavaScript 中用来表示文本的数据类型。具体示例代码如下:

var foo = 'hello';    //字符串类型
var bar = '123';      //字符串类型

        注意,字符串类型的值必须添加引号,如:'123' 表示字串类型,而 123 则表示数字类型。引号可以是单引号也可以是双引号,一般采用单引号定义 JavScript中的字符串,而双引号一般用于定义HTML的属性值。

        3. boolean

        boolean类型表示布尔值类型,布尔值表示真假值,只有两个可选值,即真值(true)和假值(false)。具体示例代码如下:

var foo = true;    //布尔类型值
var bar = false;    //布尔类型值

        4.object

        object类型表示对象类型,对象是各种值的集合。在后面章节中涉及的数组、函数、各种内置对象都属于对象类型。在后面章节中将会对对象进行详细的讲解,这里了解即可。

        5. undefined

        undefined类型表示未定义类型,如果 var 关键字声明一个变量,但并没有对其进行赋值,则无法判断变量的数据类型,此时变量数据类型是 undefined,具体示例代码如下:

var foo;    //未定义类型

         6.null

        null类型表示空类型,表示当前为空值,具体示例代码如下:

var foo = null;    //空类型

        可以发现,undefined 与 null 有些类似,null 表示一个变量被赋予了一个空值,而undefined则表示该变量尚未被赋值。

        7.其他类型

        数据类型还可划分为原型类型、合成类型、特殊类型三大类。

        (1)原始类型包括:number、string、boolean。

        (2)合成类型包括:object。

        (3)特殊类型包括:undefined、null。 

2.2.2  类型判断

       在 JavaScript 中判断数据类型的方法有三种。本节只介绍第一种方法,通过 typeof 语法判断数据类型,具体示例代码如下:

typeof 123;         //number
typeof '123';       //string
typeof true;		//boolean
typeof {};			//object
typeof [];			//object
typeof undefined;	//undefined
typeof null;		//object

        需要注意 null 值不会返回 null 类型,而是返回object类型。因为在最初的 JavaScript 版本中,只有五种类型,没有null类型,空值是在object类型下定义的,所以 typeof null 会返回 object 类型,而这个问题一直延续至今。虽然 typeof 判断不出 null 类型,但可以采用另外两种判断方法。另外两种判断方法将在后面章节中进行讲解,这里不再赘述。

2.2.3  类型转换

        数据的类型是可以发生改变的,在 JavaScript 中改变数据类型的方式有显式类型转换和隐式类型转换两种方法,下面分别讲解这两种类型转换的方法。

        1.显式类型转换

        显式类型转换是通过具体的方法,手动地进行转换的方式。Number()方法是把变量转换成数字类型;String()方法是把变量转换成字符串类型;Boolean() 方法是把变量转换成布尔值类型。具体示例代码如下:

var foo = '1';
var bar = 2;
var baz ='hi';
Number(foo);		//1
alert(typeof(Number(foo)));	//number
String(bar);		//'2'
alert(typeof(String(bar)));	//string
Boolean(baz);		//true
alert(typeof(Boolean(baz)));//boolean

        从上述示例代码中可以发现,foo、bar、baz  的原始值并不会改变,只有调用显式类型方法时才改变,当然在 JavaScript 中改变数据类型的方法并不止三种方法,这里只是介绍什么是类型转换,在后面的章节中会讲解一些常用的类型转换方法。

         注意:当一个变量不能转成数字类型时,会返回 NaN。NaN 表示变量值不是数字,但其类型却是数字类型。具体示例代码如下:

var baz = 'hi';
Number(baz);	//NaN
alert(typeof Number(baz));	//number
baz		//'hi'

         2.隐式类型转换

        隐式类型转换是通过运算的方式,自动进行转换的方式。在 JavaScript 中有很多隐式类型转换的方法,这里只作简单介绍,后面章节中也会涉及相关转换的方法。 当数字与字符串相乘时,会自动地把字符串转成数字类型,然后计算出结果。当数字与布尔值相乘时,会自动地把布尔值转成数字类型,true会转成1,false会转成0,然后计算出结果。具体示例代码如下:

2 * '3';    //6
2 * true;    //2

        需要注意+运算符,+除了表示加法,还表示连接。因此当数字与字符串相加时,实际上是要连接两个变量,并不会发生隐式类型转换,而其他运算符不表示连接,可以进行隐式类型转换。具体示例代码如下:

2 + '3';    //23

        前面介绍过undefined 与 null 的区别,undefined 表示未定义,而 null 表示已经定义,其值为空。因此,当隐式类型转换时,undefined 不可以转换为数字,而null可以转换成0。具体示例代码如下:

2 * undefined;    //NaN
2 * null;    //0
2.2.4  类型比较 

        数据类型可以转换,同样也可以用来比较,在后面小节中将介绍比较运算符 ==、=== 。其中,== 运算符左右变量进行比较时,值相同,类型可以不同;而 === 运算符左右变量进行比较时,值相同而且类型也要相同。具体示例代码如下:

2 == '2';    // true
2 === '2';    // false

        还有几个特殊的比较,undefined 与 null 比较时会返回 true ;与 NaN 比较时,则会返回 false。具体示例代码如下:

undefined == null;    // true
undefined === null;    // false
NaN == NaN;    // false
NaN === NaN;    // false

        注意,NaN 与任何值比较都会返回 false,包括它自身。这也属于 JavaScript 的历史原因。因为,当时的语法不够严谨,延续至今。JavaScript 语言是一门极其灵活的语言,在很多地方不严谨,需要更多的实践与总结。

        除上述规则外,类型比较时还有许多地方需要注意,后面小节会进行详细分析。

2.3  运算符

2.3.1  算术运算符

        算术运算符用于在程序中进行加、减、乘、除等运算。在 JavaScript 中算术运算符一共有九种,如表所示:

算数运算符
运算符 描述 示例
+ 2+3=5
- 5-2=3
* 2*3=6
/ 6/3=2
% 取模 7%4=3
++ 自增 ++1  // 2
-- 自减 --1  // 0
+ 数值 +1  // 1
- 负数值 -1  // -1

        加、减、乘、除运算符比较简单,这里将重点讲解取模运算符。使用取模运算时需要注意,当被除数小于除数取模时,模为被除数本身。具体示例代码如下:

3%5=3

        自增运算符(++)和自减运算符(--)是对数值进行加 1 或减 1 的操作,会改变原始数值的大小。具体示例代码如下:

var foo = 1;
++foo;        // 2
foo;        // 2

        对于自增和自减运算符需要注意一点,当运算符放在变量之后时,会先返回变量操作前的值,再进行自增或自减操作:当运算符放在变量之前时,会先进行自增或自减操作,再返回变量操作后的值。具体示例代码如下:

var foo = 1;
var bar = 1;
foo++;        // 1
++bar;        // 2

        上面代码中,foo 是先返回当前值,然后再自增,因此得到 1 ; bar 是先自增,然后再返回新的值,因此得到 2 。 数值运算符(+)和负数值运算符(-)的作用可以将任何值转为数值(与Number 函数的作用类似),一般用于显式类型转换中。数值运算符会返回一个新的值,而不会改变原始变量的值。具体示例代码如下:

var foo = '2';
+foo;        // 2
typeof +foo;        // number
foo;
typeof foo;        // string
2.3.2  赋值运算符

        JavaScript 中的赋值运算符分为简单赋值运算符和复合赋值运算符两种,下面分别介绍这两种赋值运算符。

1.简单赋值运算符

        将赋值运算符( = )右边表达式的值保存到左边的变量中。具体示例代码如下:

var foo = 1;        // 简单赋值运算符
var bar = 2;        // 简单赋值运算符

 2.复合赋值运算符

        结合了其他操作( 如算术运算操作)和赋值操作。具体示例代码如下:

var foo = 1;
foo += 4;        // 复合赋值运算符,等阶于 foo = foo + 4;

       += 的方式是一种简写的运算方式,除了 += 外,还有*=、/=、-=、%=等常见写法。

2.3.3  比较运算符

        比较运算符用于比较两个值,返回一个布尔值,表示是否满足比较条件。满足条件返回true,不满足条件返回 false。在 JavaScript 中一共有八种比较运算符,如表所示。

比较运算符
运算符 描述 示例
== 相等 2==3        // false
=== 严格相等 2==='2'        // false
!= 不相等 2!=3        // true
!== 严格不相等 2!='2'        // true
< 小于 7<4        // false
<= 小于或等于 7<=4        // false
> 大于 7>4        // true
>= 大于或等于 7>=4        // true

        在前面的小节中介绍过类型的转换方式,当不同类型进行比较时,先把左右类型转成数字类型,然后再进行比较,具体示例代码如下:

12 == '12';        // true    '12'转化为数字12
1 == true;        // true    true转变成数字1
0 == null;        // true    null转变成数字0
2 > true;        // true    true转变成数字1
5 < '12';        // ture    '12'转变成数字12

        但需要注意一条规则,当比较的两个值都是字符串类型时,不会按照上面的规则进行转化,而是按照字符串每一位的 Unicode 码点进行比较,例如,字符串a的码点为97、字符串b的码点为98,因此,a小于b,具体示例代码如下:

'a' < 'b';        // true    'a'转变成97,'b'转变成98
'5' > '12';        // true    '5'转成5,'1'转成1
5 > '12';        // false    '12'转成数字12

        从上述示例可以发现,当字符串出现多位时,是按照一位一位进行比较的,因此,当 '5'> '12' 比较时,是字符串 5 与字符串 1 先进行比较。 在前面介绍数据类型比较时,介绍了 == 和 === 两个运算符,两者的区别是 == 运算符表示值相等,类型可以不相同,而 === 运算符表示值相等而且类型也相同。具体示例代码如下:

12 == '12';        // true    值相同,所以相等
12 === '12';        // false    值相同但类型不相同,所以不相等

        不等运算符同样适用于此规则,具体示例代码如下:

6 !== '6';        // false    值相同,所以相等
6 !=== '6';        // true    只相等但类型不同,所以不相等

        第一个算式会忽略类型比较,因此返回 false,第二个算式需要比较类型,因此返回 true

2.3.4  逻辑运算符

        逻辑运算符一般用于执行布尔运算,通常和比较运算符一起用来表示复杂比较运算,逻辑运算涉及的变量通常不止一个,而且常用于 if、while 和 for 语句中。常见的逻辑运算符有 &&( 逻辑与 )运算符、||( 逻辑或 )运算符和 !( 逻辑非 )运算符三种。

 1.&&运算符

        && 表示逻辑与,若两边表达式的值都为 true,则返回 true;任意一个值为 false ,则返回false 。具体示例代码如下:

5 < 6 && 4 < 3;        // false    后面表达为 false
2 == '2' && 1 == true;        // ture    前后表达式均为 true

 2. ||运算符

        ||表示逻辑或,只有表达式的值都为 false,才返回 false,否则返回 true。具体示例代码如下:

5 < 6 || 4 < 3;        // true    前面的表达式为 true
2 === '2' || 0 == true;        // false    前后表达式均为 false

 3.!运算符

        !表示逻辑非,若表达式的值为 true,则返回 false;若表达式的值为 false,则返回 true。具体示例代码如下:

!(5 < 6);        // false    非运算符会对结果进行取反操作

       逻辑非运算符还可以用于类型转换,采用两个非运算来保证转换的正确性,具体示例代码如下:

var foo = 123;
!!foo;        // true    将其他类型转换成布尔值类型
2.3.5  条件运算符

        条件运算符是 JavaScript 支持的一种特殊的运算符。其语法格式如下:

条件 ? 语句1 : 语句2;

       其中,如果条件为 true,则表达式的值使用"语句1"的值;如果条件为 false,则表达式的值使用"语句2"的值,? :运算符需要有三个操作数,因此一般也称为三目运算。具体示例代码如下:

var foo = true ? 2 : 3;
foo;        // 2    当条件为真,返回2值

2.4  流程控制

        JavaScript中的流程控制语句与其他语言相似,一般可分为顺序结构、 选择结构和循环结构三种。 顺序结构就是程序从上到下、从左到右依次执行。选择结构是按照给定的逻辑条件决定执行顺序,下面将介绍两种选择结构 if 判断和 switch 判断。循环结构是根据代码的逻辑条件来判断是否重复执行某一段程序,包括 for 循环和 while  循环。 

2.4.1  if 判断

        if 判断即if语句,是选择结构中运用最广泛的语句,一般可分为单向选择、双向选择和多项选择三种形式。

1.单向选择

        单向选择是指只有一条选择语句,符合条件即选择,不符合条件即不选择,其语法格式如下: 

if(逻辑条件){
    语句1;
}
    语句2;

        其中,如果if的逻辑条件返回true,则执行语句 1 和语句 2;如果 if 返回 false,则只执行语句2。

         if 语句单向选择流程图,如图2.1所示。

        接下来通过案例演示单向选择语句,具体如例2-1所示。

JavaScript笔记_第11张图片

        单向选择语句。



	
		
		流程判断	
	
	
		
	

        执行结果: 

 JavaScript笔记_第12张图片

        例2-1中,定义变量 score 为730。当执行到 if 语句时,如果 if 小括号内的结果为真, 则执行 if 语句大括号内的代码;如果 if 语句为假,则不执行大括号内的代码。无论 if 语句是否执行,都不会影响 if 外代码的执行,因此,本例会输出以上两条语句。

2.双向选择

        双向选择有两条选择语句,满足条件选择一条语句,不满足条件选择另一条语句。其语法格式如下:

if(逻辑条件){
    语句1;
}else{
    语句2;
}

        其中,如果if的逻辑条件返回 true,则执行语句 1 ,如果 if 的逻辑条件返回 false ,则执行 else内的语句2。

        if语句双向选择流程图,如图所示。

JavaScript笔记_第13张图片

        接下来通过案例演示双向选择语句。



	
		
		流程控制		
	
	
		
	

 运行结果:

JavaScript笔记_第14张图片

        本代码采用双向选择,即 if-else 语句。当 if 语句的条件为真时,会执行 if 大括号内的语句:当 if 语句的条件为假时,会执行 else 大括号内的语句。因此,if 和 else 内的语句不能同时执行,只能执行一个。本例中,score 的值为700 ,小于 720 ,条件不满足,则触发 else 中的语句,输出以上相应结果。

3.多向选择

        多向选择是指有多条选择,进行多次判断,根据判断结构执行相应的语句。其语法格式如下:

if(逻辑条件1){
    语句1;
}else if(逻辑条件2){
    语句2;
}else{
    语句3;
}

        其中,如果 if 的逻辑条件1返回 true ,则执行语句1;如果 if 的逻辑条件1返回 false ,则执行else if 中的逻辑条件2。如果逻辑条件2返回 true ,则执行语句2;如果逻辑条件2 返回 false,则执行else中的语句3。

        if语句多向选择流程图,如图所示。

JavaScript笔记_第15张图片

        接下来通过案例演示多向选择语句。



	
		
		流程控制		
	
	
		
	

运行结果:

JavaScript笔记_第16张图片

        在上面例子中,采用了多向选择语句 if-else if-else 的组合,与双向选择类似,多向选择也只会输出对应的区域。day 变量初始被定义为 6 。先进行 if 语句的条件判断,不满足条件;程序进行else if 的条件判断,满足条件。因此,执行 else if 语句大括号内的代码,输出以上控制台打印的内容。

2.4.2  switch 判断

        switch 判断即 switch 语句,也是选择结构中很常用的语句,用于将一个表达式同多个值进行比较,并根据比较结果选择执行语句。其语法格式如下:

switch(表达式){
    case 取值1:
        语句1;
break;
    case 取值2:
        语句2;
break;
    default:
        语句3;
}

        其中,如果 switch 的表达式匹配取值 1,则执行语句 1 ;如果 switch 的表达式匹配取值 2,则执行语句 2 ;如果都不匹配,则执行默认的代码块语句 3 。

        switch 语句判断流程图,如图所示。

JavaScript笔记_第17张图片

        接下来通过案例演示switch判断语句。



	
		
		流程控制
	
	
		
	

运行效果:

JavaScript笔记_第18张图片

        default 默认值可以省略,break 表示跳出选择,如果不加 break 语句,会执行后续 case 中的结果,因此需要添加 break 语句。注意,switch 中的表达式与 case 语句中的取值是严格相等的模式,即 === 方式,因此以下代码会执行 default 中的内容。具体示例代码如下:


2.4.3  while判断

        while 循环即 while 语句,是循环结构中常见的语句,也是比较简单的循环语句。其语法格式如下:

while(逻辑条件){
    语句1;
}
语句2;

        其中,while循环的逻辑条件为 true 时,执行循环体语句1,且会重复不断地执行语句1。直到逻辑条件为false时,停止执行语句1,而直接执行结束语句2。因此,执行循环操作时,一定要在某个特定点使逻辑条件为 false,否则程序会进入死循环,从而造成浏览器运行崩溃。

        while循环流程图,如图所示。

JavaScript笔记_第19张图片

        接下来通过案例演示while循环。



	
		
		流程控制	
	
	
		
	

运行结果:

JavaScript笔记_第20张图片

        调试结果如图所示。 在本例中,首先定义了变量 i 为 0 ,然后继续向后执行,执行 while 循环语句。当 循环条件 i<5 条件成立时,执行 while 语句大括号内的代码,而且重复执行,直到while 语句的条件不满足时结束。i 每次进入循环体中都进行自身加 1 操作,当循环 5 次时,i 为5 ,不满足 while 语句条件,从而结束 while 循环,继续执行循环后的代码,即输出图中的结果。 

2.4.4  for循环

        for 循环即 for 语句,也是循环结构中常见的语句,同时也是使用最为广泛的循环语句。其语法格式如下:

for(初始值;逻辑条件;循环后操作){
    语句1;
}
语句2;

        其中,循环 for 的逻辑条件为 true 时,执行循环体语句 1,然后执行循环后操作。直到逻辑条件为 false 时,停止语句 1 的执行,而直接执行结束语句 2 。for 循环与 while 循环是等价的,所有能够进行 for 循环操作的方式都可以改写成 while 循环,反之亦然。 for 循环语句流程图,如图所示。

JavaScript笔记_第21张图片

        接下来通过案例演示 for循环。



	
		
		流程控制
	
	
		
	

运行结果: 

JavaScript笔记_第22张图片

        本例中,首先定义了变量 sum 的值为 0 ,然后执行 for 循环。在 for  循环的条件中定义了变量i的初始化为 1,条件为 i<=100 ,自增为 i++ ,这样 for 循环就会执行 100 次。在 100 次执行中都会触发 sum+=i 的语句,即把每一次i的变化值都累加到 sum 变量中。最后循环结束后会输出 1 加到 100 的和,即 sum 的值为 5050 。

        有时需要在循环未结束时就停止循环操作,为此在循环中提供了 break 语句和 continue 语句两种跳出循环的方式,接下来将分别讲解这两种方式。

1.break语句  

        break语句用于跳出整体循环,停止后续循环操作。接下来通过案例演示break语句。



	
		
		流程控制	
	
	
		
	

 运行结果:

JavaScript笔记_第23张图片

        本例中,首先定义了一个 for 循环,并且根据条件会执行 5 次循环体,但是当 i 自增到 3 时,会触发循环体中 if 语句的执行,即触发 break 语句。break 在循环中表示跳出整个循环,后续的代码及后续的循环都会立即停止。因此,只会触发输出 0、1、2 这三个结果。

2.continue 语句

        continue 语句与 break 语句类似,但 continue 语句只跳出本次循环,不影响后续循环接下来通过案例演示continue语句。




	
		
		流程控制	
	
	
		
	

运行结果:

JavaScript笔记_第24张图片

        在本例中,首先定义一个 for 循环,然后根据条件会执行5次循环体,但是当i自增到3时,会触发循环体中 if 语句的执行,即触发 continue 语句,continue 在循环中表示跳出当前循环,后续的代码不会执行,但是后续的循环还会继续。因此,会触发输出0、1、2、4四个结果,而3并没有触发。

第三章  DOM 的基本操作

3.1  获取元素

3.1.1  document 文档

        2如何通过 JavaScript 获取网页中的元素?首先需要了解 document 文档,document 文档指整个页面的根对象(最外层对象),通过document文档获取页面中的具体HTML元素。注意 document 文档的类型为对象类型,即 typeof document 返回 object 值,因此,通常 document 文档亦称 document 对象。document 文档页面的最外层如图所示。

JavaScript笔记_第25张图片

        document 对象常见属性如下表: 

document 对象常见属性
属性 描述
doctype 获取或设置文档头信息

documentElement

获取或设置 标签
head 获取或设置 标签
body 获取或设置 标签
title 获取或设置 标签</td> </tr> </tbody> </table> <p>       接下来通过案例演示 document 对象的常见属性,具体如下所示。</p> <pre><code class="language-html"><!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Hello JS

       调试结果:

JavaScript笔记_第26张图片

        在例 3-1 中,分别输出五句 document 的属性,分别表示 document.doctype(文档信息)、document.documentElement ( 标签)、document.head( 标签)、document.body ( 标签)、document.title( 标签)。可以看到控制台中输出了对应标签的格式及其子内容。</p> <p>        接下来修改<title>的内容,查看发生的变化。具体如例所示。</p> <p>        修改<title>内容,查看变化。</p> <pre><code class="language-javascript"><script> document.title = 'hello DOM'; // 设置 title 为 hello DOM </script></code></pre> <p>        效果图:</p> <p class="img-center"><a href="http://img.e-com-net.com/image/info8/f245ee488b764379b71593bebfb49948.jpg" target="_blank"><img alt="JavaScript笔记_第27张图片" height="134" src="http://img.e-com-net.com/image/info8/f245ee488b764379b71593bebfb49948.jpg" width="426" style="border:1px solid black;"></a></p> <p>        在例3-2中,对当前页面的<title>标签内的文本内容进行了重新定义,通过 "document.title=hello DOM;" 进行设置。可以看到示图中的 title 展示出来的效果。在后面的章节中还会讲解 document 对象一些常用的属性和方法等复杂内容,这里稍作了解即可。</p> <h5>3.1.2  getElementById() 方法</h5> <p>        在学习 DOM 获取 HTML 中指定的标签元素前,先来思考如何实现 CSS 样式,可以通过给元素添加 id 属性,然后通过 id 选择器进行样式的设置,具体示例代码如下:</p> <p> </p> <h5>3.1.3  元素属性操作</h5> <h4>3.2  元素样式操作</h4> <h5>3.2.1  行间样式</h5> <h5>3.2.2  cssText</h5> <h5>3.2.3  非行间样式</h5> <h4>3.3  获取集合</h4> <h5>3.3.1  getElementsByTagName() 方法</h5> <h5>3.3.2  getElementsByClassName() 方法</h5> <h5>3.3.4  innerHTML</h5> <h5>3.3.5  获取元素</h5> <h4>3.4  实际应用</h4> <h5>3.4.1  隔行换色</h5> <h5>3.4.2  拼接背景图</h5> <h5>3.4.3  九九乘法表</h5> <h3>第四章  JavaScript 函数</h3> <h3>第五章  JavaScript 进阶语法</h3> <h3>第六章  字符串与数组</h3> <h3>第七章  时间与正则</h3> <h3>第八章  DOM 详解</h3> <h3>第九章  BOM 详解</h3> <h3>第十章  事件详解</h3> <h3>第十一章  JSON 对象与 AJAX 技术</h3> <h3>第十二章  面向对象</h3> <h3>第十三章  动画与算法</h3> <h3>第十四章  ECMAScript 6.0</h3> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1717762175231143936"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(javascript,笔记,开发语言)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835512809883004928.htm" title="10月|愿你的青春不负梦想-读书笔记-01" target="_blank">10月|愿你的青春不负梦想-读书笔记-01</a> <span class="text-muted">Tracy的小书斋</span> <div>本书的作者是俞敏洪,大家都很熟悉他了吧。俞敏洪老师是我行业的领头羊吧,也是我事业上的偶像。本日摘录他书中第一章中的金句:『一个人如果什么目标都没有,就会浑浑噩噩,感觉生命中缺少能量。能给我们能量的,是对未来的期待。第一件事,我始终为了进步而努力。与其追寻全世界的骏马,不如种植丰美的草原,到时骏马自然会来。第二件事,我始终有阶段性的目标。什么东西能给我能量?答案是对未来的期待。』读到这里的时候,我便</div> </li> <li><a href="/article/1835510025561403392.htm" title="《投行人生》读书笔记" target="_blank">《投行人生》读书笔记</a> <span class="text-muted">小蘑菇的树洞</span> <div>《投行人生》----作者詹姆斯-A-朗德摩根斯坦利副主席40年的职业洞见-很短小精悍的篇幅,比较适合初入职场的新人。第一部分成功的职业生涯需要规划1.情商归为适应能力分享与协作同理心适应能力,更多的是自我意识,你有能力识别自己的情并分辨这些情绪如何影响你的思想和行为。2.对于初入职场的人的建议,细节,截止日期和数据很重要截止日期,一种有效的方法是请老板为你所有的任务进行优先级排序。和老板喝咖啡的好</div> </li> <li><a href="/article/1835509897106649088.htm" title="Long类型前后端数据不一致" target="_blank">Long类型前后端数据不一致</a> <span class="text-muted">igotyback</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>响应给前端的数据浏览器控制台中response中看到的Long类型的数据是正常的到前端数据不一致前后端数据类型不匹配是一个常见问题,尤其是当后端使用Java的Long类型(64位)与前端JavaScript的Number类型(最大安全整数为2^53-1,即16位)进行数据交互时,很容易出现精度丢失的问题。这是因为JavaScript中的Number类型无法安全地表示超过16位的整数。为了解决这个问</div> </li> <li><a href="/article/1835507248395284480.htm" title="【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数" target="_blank">【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数</a> <span class="text-muted">广龙宇</span> <a class="tag" taget="_blank" href="/search/%E4%B8%80%E8%B5%B7%E5%AD%A6Rust/1.htm">一起学Rust</a><a class="tag" taget="_blank" href="/search/%23/1.htm">#</a><a class="tag" taget="_blank" href="/search/Rust%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">Rust设计模式</a><a class="tag" taget="_blank" href="/search/rust/1.htm">rust</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、使用借用类型作为参数二、格式化拼接字符串三、使用构造函数总结前言Rust不是传统的面向对象编程语言,它的所有特性,使其独一无二。因此,学习特定于Rust的设计模式是必要的。本系列文章为作者学习《Rust设计模式》的学习笔记以及自己的见解。因此,本系列文章的结构也与此书的结构相同(后续可能会调成结构),基本上分为三个部分</div> </li> <li><a href="/article/1835505858444881920.htm" title="git常用命令笔记" target="_blank">git常用命令笔记</a> <span class="text-muted">咩酱-小羊</span> <a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a> <div>###用习惯了idea总是不记得git的一些常见命令,需要用到的时候总是担心旁边站了人~~~记个笔记@_@,告诉自己看笔记不丢人初始化初始化一个新的Git仓库gitinit配置配置用户信息gitconfig--globaluser.name"YourName"gitconfig--globaluser.email"youremail@example.com"基本操作克隆远程仓库gitclone查看</div> </li> <li><a href="/article/1835502282603589632.htm" title="509. 斐波那契数(每日一题)" target="_blank">509. 斐波那契数(每日一题)</a> <span class="text-muted">lzyprime</span> <div>lzyprime博客(github)创建时间:2021.01.04qq及邮箱:2383518170leetcode笔记题目描述斐波那契数,通常用F(n)表示,形成的序列称为斐波那契数列。该数列由0和1开始,后面的每一项数字都是前面两项数字的和。也就是:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2),其中n>1给你n,请计算F(n)。示例1:输入:2输出:1解释:F(2)=F(1)+</div> </li> <li><a href="/article/1835500750684385280.htm" title="拥有断舍离的心态,过精简生活--《断舍离》读书笔记" target="_blank">拥有断舍离的心态,过精简生活--《断舍离》读书笔记</a> <span class="text-muted">爱吃丸子的小樱桃</span> <div>不知不觉间房间里的东西越来越多,虽然摆放整齐,但也时常会觉得空间逼仄,令人心生烦闷。抱着断舍离的态度,我开始阅读《断舍离》这本书,希望从书中能找到一些有效的方法,帮助我实现空间、物品上的断舍离。《断舍离》是日本作家山下英子通过自己的经历、思考和实践总结而成的,整体内涵也从刚开始的私人生活哲学的“断舍离”升华成了“人生实践哲学”,接着又成为每个人都能实行的“改变人生的断舍离”,从“哲学”逐渐升华成“</div> </li> <li><a href="/article/1835499615491813376.htm" title="四章-32-点要素的聚合" target="_blank">四章-32-点要素的聚合</a> <span class="text-muted">彩云飘过</span> <div>本文基于腾讯课堂老胡的课《跟我学Openlayers--基础实例详解》做的学习笔记,使用的openlayers5.3.xapi。源码见1032.html,对应的官网示例https://openlayers.org/en/latest/examples/cluster.htmlhttps://openlayers.org/en/latest/examples/earthquake-clusters.</div> </li> <li><a href="/article/1835498925755297792.htm" title="DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理" target="_blank">DIV+CSS+JavaScript技术制作网页(旅游主题网页设计与制作)云南大理</a> <span class="text-muted">STU学生网页设计</span> <a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/%E6%9C%9F%E6%9C%AB%E7%BD%91%E9%A1%B5%E4%BD%9C%E4%B8%9A/1.htm">期末网页作业</a><a class="tag" taget="_blank" href="/search/html%E9%9D%99%E6%80%81%E7%BD%91%E9%A1%B5/1.htm">html静态网页</a><a class="tag" taget="_blank" href="/search/html5%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">html5期末大作业</a><a class="tag" taget="_blank" href="/search/%E7%BD%91%E9%A1%B5%E8%AE%BE%E8%AE%A1/1.htm">网页设计</a><a class="tag" taget="_blank" href="/search/web%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web大作业</a> <div>️精彩专栏推荐作者主页:【进入主页—获取更多源码】web前端期末大作业:【HTML5网页期末作业(1000套)】程序员有趣的告白方式:【HTML七夕情人节表白网页制作(110套)】文章目录二、网站介绍三、网站效果▶️1.视频演示2.图片演示四、网站代码HTML结构代码CSS样式代码五、更多源码二、网站介绍网站布局方面:计划采用目前主流的、能兼容各大主流浏览器、显示效果稳定的浮动网页布局结构。网站程</div> </li> <li><a href="/article/1835498219489030144.htm" title="高端密码学院笔记285" target="_blank">高端密码学院笔记285</a> <span class="text-muted">柚子_b4b4</span> <div>高端幸福密码学院(高级班)幸福使者:李华第(598)期《幸福》之回归内在深层生命原动力基础篇——揭秘“激励”成长的喜悦心理案例分析主讲:刘莉一,知识扩充:成功=艰苦劳动+正确方法+少说空话。贪图省力的船夫,目标永远下游。智者的梦再美,也不如愚人实干的脚印。幸福早课堂2020.10.16星期五一笔记:1,重视和珍惜的前提是知道它的价值非常重要,当你珍惜了,你就真正定下来,真正的学到身上。2,大家需要</div> </li> <li><a href="/article/1835496149843275776.htm" title="关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript" target="_blank">关于城市旅游的HTML网页设计——(旅游风景云南 5页)HTML+CSS+JavaScript</a> <span class="text-muted">二挡起步</span> <a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/%E6%97%85%E6%B8%B8/1.htm">旅游</a><a class="tag" taget="_blank" href="/search/%E9%A3%8E%E6%99%AF/1.htm">风景</a> <div>⛵源码获取文末联系✈Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业|游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作|HTML期末大学生网页设计作业,Web大学生网页HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScrip</div> </li> <li><a href="/article/1835496148601761792.htm" title="HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动" target="_blank">HTML网页设计制作大作业(div+css) 云南我的家乡旅游景点 带文字滚动</a> <span class="text-muted">二挡起步</span> <a class="tag" taget="_blank" href="/search/web%E5%89%8D%E7%AB%AF%E6%9C%9F%E6%9C%AB%E5%A4%A7%E4%BD%9C%E4%B8%9A/1.htm">web前端期末大作业</a><a class="tag" taget="_blank" href="/search/web%E8%AE%BE%E8%AE%A1%E7%BD%91%E9%A1%B5%E8%A7%84%E5%88%92%E4%B8%8E%E8%AE%BE%E8%AE%A1/1.htm">web设计网页规划与设计</a><a class="tag" taget="_blank" href="/search/html/1.htm">html</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/dreamweaver/1.htm">dreamweaver</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>Web前端开发技术描述网页设计题材,DIV+CSS布局制作,HTML+CSS网页设计期末课程大作业游景点介绍|旅游风景区|家乡介绍|等网站的设计与制作HTML期末大学生网页设计作业HTML:结构CSS:样式在操作方面上运用了html5和css3,采用了div+css结构、表单、超链接、浮动、绝对定位、相对定位、字体样式、引用视频等基础知识JavaScript:做与用户的交互行为文章目录前端学习路线</div> </li> <li><a href="/article/1835495770502033408.htm" title="Day17笔记-高阶函数" target="_blank">Day17笔记-高阶函数</a> <span class="text-muted">~在杰难逃~</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/pycharm/1.htm">pycharm</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a> <div>高阶函数【重点掌握】函数的本质:函数是一个变量,函数名是一个变量名,一个函数可以作为另一个函数的参数或返回值使用如果A函数作为B函数的参数,B函数调用完成之后,会得到一个结果,则B函数被称为高阶函数常用的高阶函数:map(),reduce(),filter(),sorted()1.map()map(func,iterable),返回值是一个iterator【容器,迭代器】func:函数iterab</div> </li> <li><a href="/article/1835495644123459584.htm" title="Day1笔记-Python简介&标识符和关键字&输入输出" target="_blank">Day1笔记-Python简介&标识符和关键字&输入输出</a> <span class="text-muted">~在杰难逃~</span> <a class="tag" taget="_blank" href="/search/Python/1.htm">Python</a><a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/%E5%A4%A7%E6%95%B0%E6%8D%AE/1.htm">大数据</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/1.htm">数据分析</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E6%8C%96%E6%8E%98/1.htm">数据挖掘</a> <div>大家好,从今天开始呢,杰哥开展一个新的专栏,当然,数据分析部分也会不定时更新的,这个新的专栏主要是讲解一些Python的基础语法和知识,帮助0基础的小伙伴入门和学习Python,感兴趣的小伙伴可以开始认真学习啦!一、Python简介【了解】1.计算机工作原理编程语言就是用来定义计算机程序的形式语言。我们通过编程语言来编写程序代码,再通过语言处理程序执行向计算机发送指令,让计算机完成对应的工作,编程</div> </li> <li><a href="/article/1835492740536823808.htm" title="node.js学习" target="_blank">node.js学习</a> <span class="text-muted">小猿L</span> <a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/node.js/1.htm">node.js</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a><a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a> <div>node.js学习实操及笔记温故node.js,node.js学习实操过程及笔记~node.js学习视频node.js官网node.js中文网实操笔记githubcsdn笔记为什么学node.js可以让别人访问我们编写的网页为后续的框架学习打下基础,三大框架vuereactangular离不开node.jsnode.js是什么官网:node.js是一个开源的、跨平台的运行JavaScript的运行</div> </li> <li><a href="/article/1835491101276991488.htm" title="数据仓库——维度表一致性" target="_blank">数据仓库——维度表一致性</a> <span class="text-muted">墨染丶eye</span> <a class="tag" taget="_blank" href="/search/%E8%83%8C%E8%AF%B5/1.htm">背诵</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E4%BB%93%E5%BA%93/1.htm">数据仓库</a> <div>数据仓库基础笔记思维导图已经整理完毕,完整连接为:数据仓库基础知识笔记思维导图维度一致性问题从逻辑层面来看,当一系列星型模型共享一组公共维度时,所涉及的维度称为一致性维度。当维度表存在不一致时,短期的成功难以弥补长期的错误。维度时确保不同过程中信息集成起来实现横向钻取货活动的关键。造成横向钻取失败的原因维度结构的差别,因为维度的差别,分析工作涉及的领域从简单到复杂,但是都是通过复杂的报表来弥补设计</div> </li> <li><a href="/article/1835484293607026688.htm" title="【Git】常见命令(仅笔记)" target="_blank">【Git】常见命令(仅笔记)</a> <span class="text-muted">好想有猫猫</span> <a class="tag" taget="_blank" href="/search/Git/1.htm">Git</a><a class="tag" taget="_blank" href="/search/Linux%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/1.htm">Linux学习笔记</a><a class="tag" taget="_blank" href="/search/git/1.htm">git</a><a class="tag" taget="_blank" href="/search/%E7%AC%94%E8%AE%B0/1.htm">笔记</a><a class="tag" taget="_blank" href="/search/elasticsearch/1.htm">elasticsearch</a><a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/c%2B%2B/1.htm">c++</a> <div>文章目录创建/初始化本地仓库添加本地仓库配置项提交文件查看仓库状态回退仓库查看日志分支删除文件暂存工作区代码远程仓库使用`.gitigore`文件让git不追踪一些文件标签创建/初始化本地仓库gitinit添加本地仓库配置项gitconfig-l#以列表形式显示配置项gitconfiguser.name"ljh"#配置user.namegitconfiguser.email"123123@qq.c</div> </li> <li><a href="/article/1835469862235893760.htm" title="为什么你总是对下属不满意?" target="_blank">为什么你总是对下属不满意?</a> <span class="text-muted">ZhaoWu1050</span> <div>【ZhaoWu的听课笔记】大多数公司,都存在两种问题。我创业四年,更是体会深切。这两种问题就是:老板经常不满意下属的表现;下属总是不知道老板想要什么;虽然这两种问题普遍存在,其实解决方法并不复杂。这节课,我们再聊聊第一个问题:为什么老板经常不满意下属表现?其实,这背后也是一条管理常识。管理学家德鲁克先生早就说过:管理者的任务,不是去改变人。*来自《卓有成效的管理者》只是大多数老板和我一样,都是一边</div> </li> <li><a href="/article/1835469859710922752.htm" title="母亲节如何做小红书营销" target="_blank">母亲节如何做小红书营销</a> <span class="text-muted">美橙传媒</span> <div>小红书的一举一动引起了外界的高度关注。通过爆款笔记和流行话题,我们可以看到“干货”类型的内容在小红书中偏向实用的生活经验共享和生活指南非常受欢迎。根据运营社的分析,这种现象是由小红书用户心智和内容社区背后机制共同决定的。首先,小红书将使用“强搜索”逻辑为用户提供特定的“搜索场景”。在“我必须这样生活”中,大量使用了满足小红书站用户喜好和需求的内容。内容社区自制的高质量内容也吸引了寻找营销新途径的品</div> </li> <li><a href="/article/1835466664725016576.htm" title="读书笔记|《遇见孩子,遇见更好的自己》5" target="_blank">读书笔记|《遇见孩子,遇见更好的自己》5</a> <span class="text-muted">抹茶社长</span> <div>为人父母意味着放弃自己的过去,不要对以往没有实现的心愿耿耿于怀,只有这样,孩子们才能做回自己。985909803.jpg孩子在与父母保持亲密的同时更需要独立,唯有这样,孩子才会成为孩子,父母才会成其为父母。有耐心的人生往往更幸福,给孩子留点余地。认识到养儿育女是对耐心的考验。为失败做好心理准备,教会孩子控制情绪。了解自己的底线,说到底线,有一点很重要,父母之所以发脾气,真正的原因往往在于他们自己,</div> </li> <li><a href="/article/1835463622344667136.htm" title="基于Python给出的PDF文档转Markdown文档的方法" target="_blank">基于Python给出的PDF文档转Markdown文档的方法</a> <span class="text-muted">程序媛了了</span> <a class="tag" taget="_blank" href="/search/python/1.htm">python</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>注:网上有很多将Markdown文档转为PDF文档的方法,但是却很少有将PDF文档转为Markdown文档的方法。就算有,比如某些网站声称可以将PDF文档转为Markdown文档,尝试过,不太符合自己的要求,而且无法保证文档没有泄露风险。于是本人为了解决这个问题,借助GPT(能使用GPT镜像或者有条件直接使用GPT的,反正能调用GPT接口就行)生成Python代码来完成这个功能。笔记、代码难免存在</div> </li> <li><a href="/article/1835460528621842432.htm" title="语文主题教学学习笔记之87" target="_blank">语文主题教学学习笔记之87</a> <span class="text-muted">东哥杂谈</span> <div>“语文主题教学”学习笔记之八十七(0125)今天继续学习小学语文主题教学的实践样态。板块三:教学中体现“书艺”味道。作为四大名著之一的《水浒传》,堪称我国文学宝库之经典。对从《水浒传》中摘选的单元,教师就要了解其原生态,即评书体特点。这也要求教师要了解一些常用的评书行话术语,然后在教学时适时地加入一些,让学生体味其文本中原有的特色。学生也要尽可能地通过朗读的方式,而不单是分析讲解的方式进行学习。细</div> </li> <li><a href="/article/1835451142843232256.htm" title="Armv8.3 体系结构扩展--原文版" target="_blank">Armv8.3 体系结构扩展--原文版</a> <span class="text-muted">代码改变世界ctw</span> <a class="tag" taget="_blank" href="/search/ARM-TEE-Android/1.htm">ARM-TEE-Android</a><a class="tag" taget="_blank" href="/search/armv8/1.htm">armv8</a><a class="tag" taget="_blank" href="/search/%E5%B5%8C%E5%85%A5%E5%BC%8F/1.htm">嵌入式</a><a class="tag" taget="_blank" href="/search/arm%E6%9E%B6%E6%9E%84/1.htm">arm架构</a><a class="tag" taget="_blank" href="/search/%E5%AE%89%E5%85%A8%E6%9E%B6%E6%9E%84/1.htm">安全架构</a><a class="tag" taget="_blank" href="/search/%E8%8A%AF%E7%89%87/1.htm">芯片</a><a class="tag" taget="_blank" href="/search/Trustzone/1.htm">Trustzone</a><a class="tag" taget="_blank" href="/search/Secureboot/1.htm">Secureboot</a> <div>快速链接:.ARMv8/ARMv9架构入门到精通-[目录]付费专栏-付费课程【购买须知】:个人博客笔记导读目录(全部)TheArmv8.3architectureextensionTheArmv8.3architectureextensionisanextensiontoArmv8.2.Itaddsmandatoryandoptionalarchitecturalfeatures.Somefeat</div> </li> <li><a href="/article/1835448238103162880.htm" title="springboot+vue项目实战一-创建SpringBoot简单项目" target="_blank">springboot+vue项目实战一-创建SpringBoot简单项目</a> <span class="text-muted">苹果酱0567</span> <a class="tag" taget="_blank" href="/search/%E9%9D%A2%E8%AF%95%E9%A2%98%E6%B1%87%E6%80%BB%E4%B8%8E%E8%A7%A3%E6%9E%90/1.htm">面试题汇总与解析</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/boot/1.htm">boot</a><a class="tag" taget="_blank" href="/search/%E5%90%8E%E7%AB%AF/1.htm">后端</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E4%B8%AD%E9%97%B4%E4%BB%B6/1.htm">中间件</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>这段时间抽空给女朋友搭建一个个人博客,想着记录一下建站的过程,就当做笔记吧。虽然复制zjblog只要一个小时就可以搞定一个网站,或者用cms系统,三四个小时就可以做出一个前后台都有的网站,而且想做成啥样也都行。但是就是要从新做,自己做的意义不一样,更何况,俺就是专门干这个的,嘿嘿嘿要做一个网站,而且从零开始,首先呢就是技术选型了,经过一番思量决定选择-SpringBoot做后端,前端使用Vue做一</div> </li> <li><a href="/article/1835448239864770560.htm" title="JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)" target="_blank">JavaScript 中,深拷贝(Deep Copy)和浅拷贝(Shallow Copy)</a> <span class="text-muted">跳房子的前端</span> <a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF%E9%9D%A2%E8%AF%95/1.htm">前端面试</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/ecmascript/1.htm">ecmascript</a> <div>在JavaScript中,深拷贝(DeepCopy)和浅拷贝(ShallowCopy)是用于复制对象或数组的两种不同方法。了解它们的区别和应用场景对于避免潜在的bugs和高效地处理数据非常重要。以下是对深拷贝和浅拷贝的详细解释,包括它们的概念、用途、优缺点以及实现方式。1.浅拷贝(ShallowCopy)概念定义:浅拷贝是指创建一个新的对象或数组,其中包含了原对象或数组的基本数据类型的值和对引用数</div> </li> <li><a href="/article/1835446687758381056.htm" title="阅读《认知觉醒》读书笔记" target="_blank">阅读《认知觉醒》读书笔记</a> <span class="text-muted">就看看书</span> <div>本周阅读了周岭的《认知觉醒开启自我改变的原动力》,启发较多,故做读书笔记一则,留待学习。全书共八章,讲述了大脑、潜意识、元认知、专注力、学习力、行动力、情绪力及成本最低的成长之道。具体描述了大脑、焦虑、耐心、模糊、感性、元认知、自控力、专注力、情绪专注、学习专注、匹配、深度、关联、体系、打卡、反馈、休息、清晰、傻瓜、行动、心智宽带、单一视角、游戏心态、早起、冥想、阅读、写作、运动等相关知识点。大脑</div> </li> <li><a href="/article/1835441611320946688.htm" title="阅读笔记:阅读方法中的逻辑和转念" target="_blank">阅读笔记:阅读方法中的逻辑和转念</a> <span class="text-muted">施吉涛</span> <div>聊聊一些阅读的方法论吧,别人家的读书方法刚开始想写,然后就不知道写什么了,因为作者写的非常的“精致”我有一种乡巴佬进城的感觉,看到精美的摆盘,精致的食材不知道该如何下口也就是《阅读的方法》,我们姑且来试一下强劲的大脑篇,第一节:逻辑通俗的来讲,也就是表达的排列和顺序,再进一步就是因果关系和关联实际上书已经看了大概一遍,但直到打算写一下笔记的时候,才发现作者讲的推理更多的是阅读的对象中呈现出的逻辑也</div> </li> <li><a href="/article/1835429927567060992.htm" title="《转介绍方法论》学习笔记" target="_blank">《转介绍方法论》学习笔记</a> <span class="text-muted">小可乐的妈妈</span> <div>一、高效转介绍的流程:价值观---执行----方案一)转介绍发生的背景:1、对象:谁向谁转介绍?全员营销,人人参与。①员工的激励政策、客户的转介绍诱因制作客户画像:a信任;支付能力;意愿度;便利度(根据家长具备四个特征的个数分为四类)B性格分类C职业分类D年龄性别②执行:套路,策略,方法,流程2、诱因:为什么要转介绍?认同信任;多方共赢;传递美好;零风险承诺打动人心,超越期待。选择做教育,就是选择</div> </li> <li><a href="/article/1835429581205630976.htm" title="JAVA学习笔记之23种设计模式学习" target="_blank">JAVA学习笔记之23种设计模式学习</a> <span class="text-muted">victorfreedom</span> <a class="tag" taget="_blank" href="/search/Java%E6%8A%80%E6%9C%AF/1.htm">Java技术</a><a class="tag" taget="_blank" href="/search/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">设计模式</a><a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%B8%B8%E7%94%A8%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F/1.htm">常用设计模式</a> <div>博主最近买了《设计模式》这本书来学习,无奈这本书是以C++语言为基础进行说明,整个学习流程下来效率不是很高,虽然有的设计模式通俗易懂,但感觉还是没有充分的掌握了所有的设计模式。于是博主百度了一番,发现有大神写过了这方面的问题,于是博主迅速拿来学习。一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器</div> </li> <li><a href="/article/1835428948339683328.htm" title="JavaScript `Map` 和 `WeakMap`详细解释" target="_blank">JavaScript `Map` 和 `WeakMap`详细解释</a> <span class="text-muted">跳房子的前端</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/%E5%8E%9F%E7%94%9F%E6%96%B9%E6%B3%95/1.htm">原生方法</a><a class="tag" taget="_blank" href="/search/javascript/1.htm">javascript</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在JavaScript中,Map和WeakMap都是用于存储键值对的数据结构,但它们有一些关键的不同之处。MapMap是一种可以存储任意类型的键值对的集合。它保持了键值对的插入顺序,并且可以通过键快速查找对应的值。Map提供了一些非常有用的方法和属性来操作这些数据对:set(key,value):将一个键值对添加到Map中。如果键已经存在,则更新其对应的值。get(key):获取指定键的值。如果键</div> </li> <li><a href="/article/81.htm" title="java短路运算符和逻辑运算符的区别" target="_blank">java短路运算符和逻辑运算符的区别</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java%E5%9F%BA%E7%A1%80/1.htm">java基础</a> <div> /* * 逻辑运算符——不论是什么条件都要执行左右两边代码 * 短路运算符——我认为在底层就是利用物理电路的“并联”和“串联”实现的 * 原理很简单,并联电路代表短路或(||),串联电路代表短路与(&&)。 * * 并联电路两个开关只要有一个开关闭合,电路就会通。 * 类似于短路或(||),只要有其中一个为true(开关闭合)是</div> </li> <li><a href="/article/208.htm" title="Java异常那些不得不说的事" target="_blank">Java异常那些不得不说的事</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/exception/1.htm">exception</a> <div>一、在finally块中做数据回收操作 比如数据库连接都是很宝贵的,所以最好在finally中关闭连接。 JDBCAgent jdbc = new JDBCAgent(); try{ jdbc.excute("select * from ctp_log"); }catch(SQLException e){ ... }finally{ jdbc.close(); </div> </li> <li><a href="/article/335.htm" title="utf-8与utf-8(无BOM)的区别" target="_blank">utf-8与utf-8(无BOM)的区别</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a> <div>BOM——Byte Order Mark,就是字节序标记   在UCS 编码中有一个叫做"ZERO WIDTH NO-BREAK SPACE"的字符,它的编码是FEFF。而FFFE在UCS中是不存在的字符,所以不应该出现在实际传输中。UCS规范建议我们在传输字节流前,先传输 字符"ZERO WIDTH NO-BREAK SPACE"。这样如</div> </li> <li><a href="/article/462.htm" title="JAVA Annotation之定义篇" target="_blank">JAVA Annotation之定义篇</a> <span class="text-muted">周凡杨</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E6%B3%A8%E8%A7%A3/1.htm">注解</a><a class="tag" taget="_blank" href="/search/annotation/1.htm">annotation</a><a class="tag" taget="_blank" href="/search/%E5%85%A5%E9%97%A8/1.htm">入门</a><a class="tag" taget="_blank" href="/search/%E6%B3%A8%E9%87%8A/1.htm">注释</a> <div>    Annotation: 译为注释或注解 An annotation, in the Java computer programming language, is a form of syntactic metadata that can be added to Java source code. Classes, methods, variables, pa</div> </li> <li><a href="/article/589.htm" title="tomcat的多域名、虚拟主机配置" target="_blank">tomcat的多域名、虚拟主机配置</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a> <div>众所周知apache可以配置多域名和虚拟主机,而且配置起来比较简单,但是项目用到的是tomcat,配来配去总是不成功。查了些资料才总算可以,下面就跟大家分享下经验。 很多朋友搜索的内容基本是告诉我们这么配置: 在Engine标签下增面积Host标签,如下: <Host name="www.site1.com" appBase="webapps"</div> </li> <li><a href="/article/716.htm" title="Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )" target="_blank">Linux SSH 错误解析(Capistrano 的cap 访问错误 Permission )</a> <span class="text-muted">510888780</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/capistrano/1.htm">capistrano</a> <div> 1.ssh -v hdfs@192.168.18.133 出现 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password). 错误 运行状况如下: OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013 debug1: Reading configuratio</div> </li> <li><a href="/article/843.htm" title="log4j的用法" target="_blank">log4j的用法</a> <span class="text-muted">Harry642</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/log4j/1.htm">log4j</a> <div>一、前言:     log4j 是一个开放源码项目,是广泛使用的以Java编写的日志记录包。由于log4j出色的表现,     当时在log4j完成时,log4j开发组织曾建议sun在jdk1.4中用log4j取代jdk1.4 的日志工具类,但当时jdk1.4已接近完成,所以sun拒绝使用log4j,当在java开发中</div> </li> <li><a href="/article/970.htm" title="mysql、sqlserver、oracle分页,java分页统一接口实现" target="_blank">mysql、sqlserver、oracle分页,java分页统一接口实现</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/jave/1.htm">jave</a> <div> 定义:pageStart 起始页,pageEnd 终止页,pageSize页面容量 oracle分页:     select * from ( select mytable.*,rownum num from (实际传的SQL) where rownum<=pageEnd) where num>=pageStart sqlServer分页:  </div> </li> <li><a href="/article/1097.htm" title="Hessian 简单例子" target="_blank">Hessian 简单例子</a> <span class="text-muted">antlove</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/service/1.htm">service</a><a class="tag" taget="_blank" href="/search/hessian/1.htm">hessian</a> <div>hello.hessian.MyCar.java package hessian.pojo; import java.io.Serializable; public class MyCar implements Serializable { private static final long serialVersionUID = 473690540190845543</div> </li> <li><a href="/article/1224.htm" title="数据库对象的同义词和序列" target="_blank">数据库对象的同义词和序列</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/%E5%BA%8F%E5%88%97/1.htm">序列</a><a class="tag" taget="_blank" href="/search/%E5%90%8C%E4%B9%89%E8%AF%8D/1.htm">同义词</a><a class="tag" taget="_blank" href="/search/ORACLE%E6%9D%83%E9%99%90/1.htm">ORACLE权限</a> <div>回顾简单的数据库权限等命令; 解锁用户和锁定用户 alter user scott account lock/unlock; //system下查看系统中的用户 select * dba_users; //创建用户名和密码 create user wj identified by wj; identified by //授予连接权和建表权 grant connect to </div> </li> <li><a href="/article/1351.htm" title="使用Powermock和mockito测试静态方法" target="_blank">使用Powermock和mockito测试静态方法</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/1.htm">持续集成</a><a class="tag" taget="_blank" href="/search/%E5%8D%95%E5%85%83%E6%B5%8B%E8%AF%95/1.htm">单元测试</a><a class="tag" taget="_blank" href="/search/mockito/1.htm">mockito</a><a class="tag" taget="_blank" href="/search/Powermock/1.htm">Powermock</a> <div>        实例: package com.bijian.study; import static org.junit.Assert.assertEquals; import java.io.IOException; import org.junit.Before; import org.junit.Test; import or</div> </li> <li><a href="/article/1478.htm" title="精通Oracle10编程SQL(6)访问ORACLE" target="_blank">精通Oracle10编程SQL(6)访问ORACLE</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>/* *访问ORACLE */ --检索单行数据 --使用标量变量接收数据 DECLARE v_ename emp.ename%TYPE; v_sal emp.sal%TYPE; BEGIN select ename,sal into v_ename,v_sal from emp where empno=&no; dbms_output.pu</div> </li> <li><a href="/article/1605.htm" title="【Nginx四】Nginx作为HTTP负载均衡服务器" target="_blank">【Nginx四】Nginx作为HTTP负载均衡服务器</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/nginx/1.htm">nginx</a> <div> Nginx的另一个常用的功能是作为负载均衡服务器。一个典型的web应用系统,通过负载均衡服务器,可以使得应用有多台后端服务器来响应客户端的请求。一个应用配置多台后端服务器,可以带来很多好处:   负载均衡的好处 增加可用资源 增加吞吐量 加快响应速度,降低延时 出错的重试验机制 Nginx主要支持三种均衡算法: round-robin l</div> </li> <li><a href="/article/1732.htm" title="jquery-validation备忘" target="_blank">jquery-validation备忘</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/css/1.htm">css</a><a class="tag" taget="_blank" href="/search/F%23/1.htm">F#</a><a class="tag" taget="_blank" href="/search/Firebug/1.htm">Firebug</a> <div>留点学习jquery validation总结的代码:   function checkForm(){ validator = $("#commentForm").validate({// #formId为需要进行验证的表单ID errorElement :"span",// 使用"div"标签标记错误, 默认:&</div> </li> <li><a href="/article/1859.htm" title="solr限制admin界面访问(端口限制和http授权限制)" target="_blank">solr限制admin界面访问(端口限制和http授权限制)</a> <span class="text-muted">ronin47</span> <a class="tag" taget="_blank" href="/search/%E9%99%90%E5%AE%9AIp%E8%AE%BF%E9%97%AE/1.htm">限定Ip访问</a> <div>solr的管理界面可以帮助我们做很多事情,但是把solr程序放到公网之后就要限制对admin的访问了。 可以通过tomcat的http基本授权来做限制,也可以通过iptables防火墙来限制。 我们先看如何通过tomcat配置http授权限制。 第一步: 在tomcat的conf/tomcat-users.xml文件中添加管理用户,比如: <userusername="ad</div> </li> <li><a href="/article/1986.htm" title="多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1" target="_blank">多线程-用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E5%A4%9A%E7%BA%BF%E7%A8%8B/1.htm">多线程</a> <div> public class IncDecThread { private int j=10; /* * 题目:用JAVA写一个多线程程序,写四个线程,其中二个对一个变量加1,另外二个对一个变量减1 * 两个问题: * 1、线程同步--synchronized * 2、线程之间如何共享同一个j变量--内部类 */ public static </div> </li> <li><a href="/article/2113.htm" title="买房历程" target="_blank">买房历程</a> <span class="text-muted">cfyme</span> <div>    2015-06-21: 万科未来城,看房子   2015-06-26: 办理贷款手续,贷款73万,贷款利率5.65=5.3675   2015-06-27: 房子首付,签完合同   2015-06-28,央行宣布降息 0.25,就2天的时间差啊,没赶上。   首付,老婆找他的小姐妹接了5万,另外几个朋友借了1-</div> </li> <li><a href="/article/2240.htm" title="[军事与科技]制造大型太空战舰的前奏" target="_blank">[军事与科技]制造大型太空战舰的前奏</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E5%88%B6%E9%80%A0/1.htm">制造</a> <div>        天气热了........空调和电扇要准备好..........        最近,世界形势日趋复杂化,战争的阴影开始覆盖全世界..........        所以,我们不得不关</div> </li> <li><a href="/article/2367.htm" title="dateformat" target="_blank">dateformat</a> <span class="text-muted">dai_lm</span> <a class="tag" taget="_blank" href="/search/DateFormat/1.htm">DateFormat</a> <div> "Symbol Meaning Presentation Ex." "------ ------- ------------ ----" "G era designator (Text) AD" "y year</div> </li> <li><a href="/article/2494.htm" title="Hadoop如何实现关联计算" target="_blank">Hadoop如何实现关联计算</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/mapreduce/1.htm">mapreduce</a><a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a><a class="tag" taget="_blank" href="/search/%E5%85%B3%E8%81%94%E8%AE%A1%E7%AE%97/1.htm">关联计算</a> <div>    选择Hadoop,低成本和高扩展性是主要原因,但但它的开发效率实在无法让人满意。     以关联计算为例。     假设:HDFS上有2个文件,分别是客户信息和订单信息,customerID是它们之间的关联字段。如何进行关联计算,以便将客户名称添加到订单列表中?   &nbs</div> </li> <li><a href="/article/2621.htm" title="用户模型中修改用户信息时,密码是如何处理的" target="_blank">用户模型中修改用户信息时,密码是如何处理的</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>当我添加或修改用户记录的时候对于处理确认密码我遇到了一些麻烦,所有我想分享一下我是怎么处理的。 场景是使用的基本的那些(系统自带),你需要有一个数据表(user)并且表中有一个密码字段(password),它使用 sha1、md5或其他加密方式加密用户密码。 面是它的工作流程: 当创建用户的时候密码需要加密并且保存,但当修改用户记录时如果使用同样的场景我们最终就会把用户加密过的密码再次加密,这</div> </li> <li><a href="/article/2748.htm" title="中文 iOS/Mac 开发博客列表" target="_blank">中文 iOS/Mac 开发博客列表</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/Blog/1.htm">Blog</a> <div>  本博客列表会不断更新维护,如果有推荐的博客,请到此处提交博客信息。 本博客列表涉及的文章内容支持 定制化Google搜索,特别感谢 JeOam 提供并帮助更新。 本博客列表也提供同步更新的OPML文件(下载OPML文件),可供导入到例如feedly等第三方定阅工具中,特别感谢 lcepy 提供自动转换脚本。这里有导入教程。 </div> </li> <li><a href="/article/2875.htm" title="js去除空格,去除左右两端的空格" target="_blank">js去除空格,去除左右两端的空格</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/%E5%8E%BB%E9%99%A4%E5%B7%A6%E5%8F%B3%E4%B8%A4%E7%AB%AF%E7%9A%84%E7%A9%BA%E6%A0%BC/1.htm">去除左右两端的空格</a><a class="tag" taget="_blank" href="/search/js%E5%8E%BB%E6%8E%89%E6%89%80%E6%9C%89%E7%A9%BA%E6%A0%BC/1.htm">js去掉所有空格</a><a class="tag" taget="_blank" href="/search/js%E5%8E%BB%E9%99%A4%E7%A9%BA%E6%A0%BC/1.htm">js去除空格</a> <div>js去除空格,去除左右两端的空格 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>&g</div> </li> <li><a href="/article/3002.htm" title="SpringMVC4零配置--web.xml" target="_blank">SpringMVC4零配置--web.xml</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/springmvc4/1.htm">springmvc4</a> <div>servlet3.0+规范后,允许servlet,filter,listener不必声明在web.xml中,而是以硬编码的方式存在,实现容器的零配置。 ServletContainerInitializer:启动容器时负责加载相关配置 package javax.servlet; import java.util.Set; public interface ServletContainer</div> </li> <li><a href="/article/3129.htm" title="《开源框架那些事儿21》:巧借力与借巧力" target="_blank">《开源框架那些事儿21》:巧借力与借巧力</a> <span class="text-muted">j2eetop</span> <a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/UI/1.htm">UI</a> <div>同样做前端UI,为什么有人花了一点力气,就可以做好?而有的人费尽全力,仍然错误百出?我们可以先看看几个故事。 故事1:巧借力,乌鸦也可以吃核桃 有一个盛产核桃的村子,每年秋末冬初,成群的乌鸦总会来到这里,到果园里捡拾那些被果农们遗落的核桃。 核桃仁虽然美味,但是外壳那么坚硬,乌鸦怎么才能吃到呢?原来乌鸦先把核桃叼起,然后飞到高高的树枝上,再将核桃摔下去,核桃落到坚硬的地面上,被撞破了,于是,</div> </li> <li><a href="/article/3256.htm" title="JQuery EasyUI 验证扩展" target="_blank">JQuery EasyUI 验证扩展</a> <span class="text-muted">可怜的猫</span> <a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a><a class="tag" taget="_blank" href="/search/easyui/1.htm">easyui</a><a class="tag" taget="_blank" href="/search/%E9%AA%8C%E8%AF%81/1.htm">验证</a> <div>  最近项目中用到了前端框架-- EasyUI,在做校验的时候会涉及到很多需要自定义的内容,现把常用的验证方式总结出来,留待后用。   以下内容只需要在公用js中添加即可。   使用类似于如下: <input class="easyui-textbox" name="mobile" id="mobile&</div> </li> <li><a href="/article/3383.htm" title="架构师之httpurlconnection----------读取和发送(流读取效率通用类)" target="_blank">架构师之httpurlconnection----------读取和发送(流读取效率通用类)</a> <span class="text-muted">nannan408</span> <div>1.前言.    如题. 2.代码. /* * Copyright (c) 2015, S.F. Express Inc. All rights reserved. */ package com.test.test.test.send; import java.io.IOException; import java.io.InputStream</div> </li> <li><a href="/article/3510.htm" title="Jquery性能优化" target="_blank">Jquery性能优化</a> <span class="text-muted">r361251</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a><a class="tag" taget="_blank" href="/search/jquery/1.htm">jquery</a> <div>一、注意定义jQuery变量的时候添加var关键字 这个不仅仅是jQuery,所有javascript开发过程中,都需要注意,请一定不要定义成如下: $loading = $('#loading'); //这个是全局定义,不知道哪里位置倒霉引用了相同的变量名,就会郁闷至死的 二、请使用一个var来定义变量 如果你使用多个变量的话,请如下方式定义: . 代码如下: var page </div> </li> <li><a href="/article/3637.htm" title="在eclipse项目中使用maven管理依赖" target="_blank">在eclipse项目中使用maven管理依赖</a> <span class="text-muted">tjj006</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/maven/1.htm">maven</a> <div>概览: 如何导入maven项目至eclipse中 建立自有Maven  Java类库服务器 建立符合maven代码库标准的自定义类库 Maven在管理Java类库方面有巨大的优势,像白衣所说就是非常“环保”。 我们平时用IDE开发都是把所需要的类库一股脑的全丢到项目目录下,然后全部添加到ide的构建路径中,如果用了SVN/CVS,这样会很容易就 把</div> </li> <li><a href="/article/3764.htm" title="中国天气网省市级联页面" target="_blank">中国天气网省市级联页面</a> <span class="text-muted">x125858805</span> <a class="tag" taget="_blank" href="/search/%E7%BA%A7%E8%81%94/1.htm">级联</a> <div>1、页面及级联js <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> &l</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>