[JavaScript] MDN web docs 摘要 1: JavaScript 第一步
[JavaScript] MDN web docs 摘要 1: JavaScript 第一步
文章目录
1 什么是JavaScript
1.1 浏览器 API
1.2 第三方 API
1.3 注释
1.4 解释代码 vs 编译代码
1.5 服务器端代码 vs 客户端代码
1.6 动态代码 vs 静态代码
1.7 怎样向页面添加 JavaScript
1.7.1 内部 JavaScript
1.7.2 外部 JavaScript
1.7.3 内联 JavaScript 处理器
1.8 脚本加载策略
2 初次接触 JavaScript
3 出现了什么问题?JavaScript 疑难解答
4 储存你所需的信息 — 变量
4.1 用`let`或`var`声明变量
4.2 变量命名规则:
4.3 变量类型:
4.4 常量
5 JavaScript 基础概念 — 数字与运算符
5.1 JavaScript 只有一种数字的数据类型: `Number`.
5.2 操作符
6 处理文字 — JavaScript 中的字符串
6.1 字符串
6.2 转义
6.3 连接字符串:
6.4 数字与字符串相互转换
7 字符串常用操作
7.1 字符串长度
7.2 检索
7.3 字串
7.4 大小写转换
7.4 字符串替换
8 数组
8.1 创建数组
8.2 访问和修改数组元素
8.3 数组长度
8.4 数组和字符串相互转换
8.4.1 字符串转换为数组
8.4.2 数组转换为字符串
8.5 添加和删除数组元素
1 什么是JavaScript
JavaScript 是一种脚本,一门编程语言,它可以在网页上实现复杂的功能,网页展现给你的不再是简单的静态信息,而是实时的内容更新,交互式的地图,2D/3D 动画,滚动播放的视频等等。
1.1 浏览器 API
内建于 web 浏览器中,它们可以使周边计算环境的数据暴露出来,还可以做实用的复杂工作。例如:
文档对象模型 API(DOM(Document Object Model)API) 能通过创建、移除和修改 HTML,为页面动态应用新样式等手段来操作 HTML 和 CSS。比如当某个页面出现了一个弹窗,或者显示了一些新内容(像上文小 demo 中看到那样),这就是 DOM 在运行。
地理位置 API(Geolocation API) 获取地理信息。这就是为什么 谷歌地图 可以找到你的位置,而且标示在地图上。
画布(Canvas) 和 WebGL API 可以创建生动的 2D 和 3D 图像。人们正运用这些 web 技术制作令人惊叹的作品。参见 Chrome Experiments 以及 webglsamples。
诸如 HTMLMediaElement 和 WebRTC 等 影音类 API 让你可以利用多媒体做一些非常有趣的事,比如在网页中直接播放音乐和影片,或用自己的网络摄像头获取录像,然后在其他人的电脑上展示(试用简易版 截图 demo 以理解这个概念)。
1.2 第三方 API
并没有默认嵌入浏览器中,一般要从网上取得它们的代码和信息。比如:
Twitter API 和 新浪微博 API 可以在网站上展示最新推文之类。
谷歌地图 API 和 高德地图 API 可以在网站嵌入定制的地图等等。
1.3 注释
JavaScript 的注释和C++ 一样: //单行注释
和 /*多行注释 */
1.4 解释代码 vs 编译代码
解释(interpret)和 编译(compile)。在解释型语言中,代码自上而下运行,且实时返回运行结果。代码在执行前,无需由浏览器将其转化为其他形式。 与此同时,编译型语言代码能够运行之前需要先转化(编译)成另一种形式。比如 C/C++ 先被编译成汇编语言,然后才能由计算机运行。JavaScript 是轻量级解释型语言。两种方式各有优势。
1.5 服务器端代码 vs 客户端代码
客户端(client-side)代码是在用户的电脑上运行的代码,在浏览一个网页时,它的客户端代码就会被下载,然后由浏览器来运行并展示。这就是客户端 JavaScript。 而服务器端(server-side)代码在服务器上运行,浏览器将结果下载并展示出来。流行的服务器端 web 语言包括:PHP、Python、Ruby、ASP.NET 以及 JavaScript。JavaScript 也可用作服务器端语言,比如现在流行的 Node.js 环境。
1.6 动态代码 vs 静态代码
“动态”一词既能描述客户端 JavaScript,又能描述服务器端语言。是指通过按需生成新内容来更新 web 页面 / 应用,使得不同环境下显示不同内容。服务器端代码会在服务器上动态生成新内容,例如从数据库中提取信息。而客户端 JavaScript 则在用户端浏览器中动态生成新内容,比如说创建一个新的 HTML 表格,用从服务器请求到的数据填充,然后在网页中向用户展示这个表格。两种情况的意义略有不同,但又有所关联。 没有动态更新内容的网页叫做“静态”页面,所显示的内容不会改变。
1.7 怎样向页面添加 JavaScript
使用
元素添加各种JavaScript:无论内部还是外部。
1.7.1 内部 JavaScript
code 直接加到html中,放在
标签之前。
< html lang = " en-US" >
< head>
< meta charset = " utf-8" >
< title> Apply JavaScript example title>
< script>
document. addEventListener ( "DOMContentLoaded" , function ( ) {
function createParagraph ( ) {
let para = document. createElement ( 'p' ) ;
para. textContent = 'You clicked the button!' ;
document. body. appendChild ( para) ;
}
const buttons = document. querySelectorAll ( 'button' ) ;
for ( let i = 0 ; i < buttons. length ; i++ ) {
buttons[ i] . addEventListener ( 'click' , createParagraph) ;
}
} ) ;
script>
head>
< body>
< button> Click me button>
body>
html>
1.7.2 外部 JavaScript
外部JavaScript是指,将JavaScript脚本放到.js
文件中,这是最佳的写法,HTML和JS分开,易于维护,可重用。
function createParagraph ( ) {
let para = document. createElement ( 'p' ) ;
para. textContent = 'You clicked the button!' ;
document. body. appendChild ( para) ;
}
const buttons = document. querySelectorAll ( 'button' ) ;
for ( let i = 0 ; i < buttons. length ; i++ ) {
buttons[ i] . addEventListener ( 'click' , createParagraph) ;
}
然后将
替换成:
1.7.3 内联 JavaScript 处理器
有时候会看到下面这样的代码,即在button元素里加一个onclick
处理器,但是这是不好的写法,且每加一个button都要这样写,不好维护。
function createParagraph ( ) {
let para = document. createElement ( 'p' ) ;
para. textContent = 'You clicked the button!' ;
document. body. appendChild ( para) ;
}
< button onclick= "createParagraph()" > Click me! < / button>
1.8 脚本加载策略
如果要用JS操作DOM,那么DOM一定要先于javascript被加载。 老的解决方法是将JS脚本放在
标签之前,这种方法使HTML DOM在加载之前,javascript的加载/解析完全被阻止,效率低。
1.8.1 async
和 defer
1.7.1 内部 javascript 的例子:
document. addEventListener ( "DOMContentLoaded" , function ( ) {
...
} ) ;
事件监听器监听 DOMContentLoaded
事件,代表HTML body已经完全加载并解析。此事件被触发之后,javascript 才会运行。
async
和 defer
仅对外部 javascript 起作用,它们之间的区别示意图:
< script src = " myscript.js" > script>
< script async src = " myscript.js" > script>
< script defer src = " myscript.js" > script>
Without async or defer, browser will run your script immediately, before rendering the elements that’s below your script tag.
With async (asynchronous), browser will continue to load the HTML page and render it while the browser load and execute the script at the same time.
With defer, browser will run your script when the page finished parsing. (not necessary finishing downloading all image files. This is good.)
< script defer src = " js/vendor/jquery.js" > script>
< script defer src = " js/script2.js" > script>
< script defer src = " js/script3.js" > script>
使用defer能保证脚本按顺序加载,jquery.js, script2.js, script3.js ,使用 async 则不然。
如果多个脚本不需要等待解析(???),能独立执行,用async
, 反之用defer
。
2 初次接触 JavaScript
JavaScript 的很多代码特性和其他编程语言是一样的,比如函数啊,循环之类的,代码语法看起来不同,但概念基本是一样的。
用关键字let
(或 var
创建变量),用 const
创建常量(这点和C++一样)。
定义函数有很多方式,其中一种是用关键字function
定义,举例如下:
function checkGuess ( ) {
alert ( 'I am a placeholder' ) ;
}
如果在浏览器的JavaScript Console调用这个函数,会弹出对话框。 操作符 +
-
*
/
可以进行算术运算,还可以进行字符串连接。 还允许快捷操作符:
name += ' says hello!' ;
++
操作符也可以用: guessCount++;
比较操作符,这里比较相等和不等与其他语言不同,多一个等号。 但是 ==
和!=
在JavaScript里也是合法的操作符,但和严格相等符号===
相比,==
只看值是否相等,不管数据类型是否相同,因此应该使用===
符号,可以减少错误发生的可能性。 条件,if
, else if
, else
和C++ 语法是一样的。
对于JavaScript语言,一切都是对象,用户可以自己创建对象。
3 出现了什么问题?JavaScript 疑难解答
JavaScript 大小写敏感。
console.log()
是非常有用的调试函数,可以将值输出到控制台。 类选择器以点号 .
开始。
如果是Firefox, 用 Ctrl + Shift + K, 打开console,可以看到可能的错误提示。
4 储存你所需的信息 — 变量
4.1 用let
或var
声明变量
声明变量时不需要指定类型:
let myName;
let myAge;
在JavaScript中,所有代码指令以分号结束。 同时声明并初始化变量:
let myDog = 'Rover' ;
var
和let
的区别: var
是老的,let
是新的,可以在变量初始化之后,再次用var
关键字声明。例如:
myName = 'Chris' ;
function logName ( ) {
console. log ( myName) ;
}
logName ( ) ;
var myName;
此外,下面的代码是合法的,如果var
改成let
就不合法:
var myName = 'Chris' ;
var myName = 'Bob' ;
要尽量使用let
而非 var
,除非是要支持旧版的IE,一些旧版的IE只支持var
,不支持let
。
4.2 变量命名规则:
1 变量名由(0-9, a-z, A-Z) 以及下划线组成
2 不要以下划线开头
3 不要以数字开头
4 不能用保留字当变量名
4.3 变量类型:
数字:有整型,也有浮点型, let myAge = 17;
字符串 :可用单引号或双引号, let dolphinGoodbye = 'So long and thanks for all the fish';
布尔:值为true
或false
, let iAmAlive = true;
数组:let myNameArray = ['Chris', 'Bob', 'Jim'];
第一个元素的index是0
对象:let dog = { name : 'Spot', breed : 'Dalmatian' };
然后 dog.name
为 Spot
动态类型:不需要指定变量的数据类型
let myNumber = '500' ;
typeof myNumber;
myNumber = 500 ;
typeof myNumber;
4.4 常量
常量声明之后,值不可再次改变,和其他语言一样。 使用const
关键字:
const daysInWeek = 7 ;
const hoursInDay = 24 ;
daysInWeek = 8 ;
5 JavaScript 基础概念 — 数字与运算符
5.1 JavaScript 只有一种数字的数据类型: Number
.
let myInt = 5 ;
let myFloat = 6.667 ;
myInt;
myFloat;
typedef myInt;
typedef myFloat;
5.2 操作符
操作符和其他语言类似, 有 +
-
*
/
%
**
, 最后一个是指数运算符:
10 ** 3
= Math.pow(10, 3)
= 10 * 10 * 10
= 1000
除法运算和python类似,会给出浮点值:
10 / 9;
1.1111111111111112
表达式求和的顺序总是从左到右。 ++
和 --
操作符和C++的一样。
let num1 = 4 ;
num1++ ;
num1;
let num2 = 6 ;
num2-- ;
num2;
let num3 = 6 ;
++ num3;
num3;
6 处理文字 — JavaScript 中的字符串
6.1 字符串
字符串可用单引号或双引号,但是不能混用:
let badQuotes = 'What on earth? ";
6.2 转义
转义字符串中的字符,在字符前加反斜杠转义字符:
let bigmouth = 'I\'ve got no right to take my place...' ;
bigmouth;
6.3 连接字符串:
用+
号,字符串字面值还可以和变量相加:
let name = prompt ( 'What is your name?' ) ;
alert ( 'Hello ' + name + ', nice to see you!' ) ;
数字可与字符串相加:
'Front ' + 242 ;
6.4 数字与字符串相互转换
使用Number函数与toString() 方法:
let myString = '123' ;
let myNum = Number ( myString) ;
typeof myNum;
let myNum = 123 ;
let myString = myNum. toString ( ) ;
typeof myString;
7 字符串常用操作
字符串是对象。
7.1 字符串长度
使用 length
属性
let browserType = 'mozilla' ;
browserType. length;
7.2 检索
同数组:
browserType[ 0 ] ;
browserType. indexOf ( 'zilla' ) ;
indexOf()
方法仅返回首次出现时的索引:The index of the first occurrence of searchValue, or -1 if not found.
7.3 字串
用 slice(a, b)
方法,a
为起始位置,b
为结束位置,实际取a ~ b-1
。 如果 b
省略,取a
起始的全部字符,直到结束。
let browserType = "Mozilla" ;
browserType. slice ( 2 ) ;
7.4 大小写转换
分别使用 toLowerCase()
和 toUpperCase()
两个方法。
7.4 字符串替换
let browserType = "Mozilla" ;
browserType. replace ( 'moz' , 'van' ) ;
8 数组
8.1 创建数组
数组元素的数据类型可以不统一:
let random = [ 'tree' , 795 , [ 0 , 1 , 2 ] ] ;
8.2 访问和修改数组元素
同C++数组,没有特别之处。
8.3 数组长度
使用 .length
属性。
8.4 数组和字符串相互转换
8.4.1 字符串转换为数组
let myData = 'Manchester,London,Liverpool,Birmingham,Leeds,Carlisle' ;
let myArray = myData. split ( ',' ) ;
myArray;
8.4.2 数组转换为字符串
使用 join()
或 toString()
方法, toString()
更简单,但不能带参数。
let dogNames = [ 'Rocket' , 'Flash' , 'Bella' , 'Slugger' ] ;
let myNewString = dogNames. join ( ';;' ) ;
myNewString;
let myNewString2 = dogNames. toString ( ) ;
myNewString2;
8.5 添加和删除数组元素
从数组末尾添加删除元素: push()
, pop()
push()
可以带多个参数,如果成功,返回新数组长度,pop()
不带参数,如果成功,返回被删除的元素。 从数组开头添加删除元素:unshift()
, shift()
两组方法没有差别,只不过是一个对数组末尾的元素操作,一个对数组开头的元素操作。
let myArray = [ 'Manchester' , 'London' , 'Birmingham' , 'Leeds' , 'Carlisle' ] ;
let newLength = myArray. push ( 'Bradford' , 'Brighton' ) ;
myArray;
newLength;
let removedItem = myArray. pop ( ) ;
myArray;
removedItem;
https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/First_steps/What_is_JavaScript
https://stackoverflow.com/questions/10808109/script-tag-async-defer/24183280#24183280
你可能感兴趣的:(Other)
leetcode中等.数组(21-40)python
九日火
python leetcode
80.RemoveDuplicatesfromSortedArrayII(m-21)Givenasortedarraynums,removetheduplicatesin-placesuchthatduplicatesappearedatmosttwiceandreturnthenewlength.Donotallocateextraspaceforanotherarray,youmustdoth
Vicky的ScalersTalk第六轮新概念朗读持续力训练Day73 20210411
Vicky_b9de
练习材料:ModerncavemenPart-3ˈmɒdənˈkeɪvmənpɑːt-3Theyplungedintothelake,andafterloadingtheirgearonaninflatablerubberdinghy,letthecurrentcarrythemtotheotherside.Toprotectthemselvesfromtheicywater,theyhadtow
Github 2024-09-12 Go开源项目日报Top10
老孙正经胡说
github golang 开源 Github趋势分析 开源项目 Python Golang
根据GithubTrendings的统计,今日(2024-09-12统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下:开发语言项目数量Go项目10C项目1Terraform:基础设施即代码的开源工具创建周期:3626天开发语言:Go协议类型:OtherStar数量:40393个Fork数量:9397次关注人数:40393人贡献人数:358人OpenIssues数量:1943个Git
随摘
桔桔岛
Oneshouldcaremoreaboutone'sowngrowthinsteadofothers.Toliveahappylife,oneshouldalwaystryeveryefforttominimizeregretsinlife.比起时刻注视着他人,多关注自身的成长,尽自己的一切努力让生活少点遗憾,才能过上快意人生。Whenoneshiftstheirfocusfromotherst
如何利用命令模式实现一个手游后端架构?
隔窗听雨眠
命令模式
命令模式的原理解读命令模式的英文翻译是CommandDesignPattern。在GoF的《设计模式》一书中,它是这么定义的:Thecommandpatternencapsulatesarequestasanobject,therebylettingusparameterizeotherobjectswithdifferentrequests,queueorlogrequests,andsuppo
OpenAI gym: How to get complete list of ATARI environments
营赢盈英
AI ai deep learning openai gym reinforcement learning
题意:OpenAIGym:如何获取完整的ATARI环境列表问题背景:IhaveinstalledOpenAIgymandtheATARIenvironments.IknowthatIcanfindalltheATARIgamesinthedocumentationbutisthereawaytodothisinPython,withoutprintinganyotherenvironments(e
Go学习笔记
南方淮竹
golang golang 学习 笔记 常识 后端 开发语言 人工智能
Go环境变量GOROOT:Go语言安装根目录的路径。GOPATH:若干工作区目录的路径,我们自己定义的工作空间。GOBIN:GO程序生成的可执行文件(executablefile)的路径。国内镜像https://goproxy.cn#macOSorLinuxexportGO111MODULE=onexportGOPROXY=https://goproxy.cn#othersgoenv-wGO111
Linux文件权限管理
不屈的铝合金
边学边记-linux linux 服务器 运维 centos
1.文件权限位说明Linux文件或目录的基本权限位是由九个字符来控制的,每三位字符为一组。前三位是用户权限位中三位表示用户组权限位后三位表示其他用户权限位rwxr-xr-xuser(用户)group(用户组)others(其他用户)代表字符为u代表字符为g代表字符为o2.文件权限详细说明2.1普通文件对应权限的详细说明Linux系统中的权限对于文件和目录来说,是有一定区别的。普通文件对应的权限:权
We are talking about 《WAR IS A LIE》
MichaelSure
图片发自App图片发自AppTodayIreadabookwhichiscalledWarisalie.ThisisabookwrittebyDavidSwanson,anAmericanwriterwhofightsagainstthewar.WarisawordalwaysrelatetotheUnitedStatesandDavidthinkhismotherlandisthebiggest
vscode连接docker容器
梦想成为大佬的王老八
vscode docker ide
需安装插件Docker和RemoteDevelopment。连接时报错:Failedtoconnecttotheremoteextensionhostserver(Error:Theoperationwasaborted)解决方案:卸载重装,重新打开
如何使用Flutter为iOS和Android应用设置Firebase
cukw6666
数据库 android java python ios
Firebaseisagreatbackendsolutionforanyonethatwantstouseauthentication,databases,cloudfunctions,adsandcountlessotherfeatureswithinanapp.Luckilyforus,FlutterhasofficialsupportforFirebasewiththeFlutterFir
【OpenCV】官方文档学习,库的命名冲突处理办法【声明命名空间】
深耕AI
opencv 学习 人工智能
原文:SomeofthecurrentorfutureOpenCVexternalnamesmayconflictwithSTLorotherlibraries.Inthiscase,useexplicitnamespacespecifierstoresolvethenameconflicts:Mata(100,100,CV_32F);randu(a,Scalar::all(1),Scalar::
第一章 认识Mybatis的核心组件
qq_38911531
1、可以从http://www.softpedia.com/get/Programming/Other-Programming-Files/MyBatis.shtml下载mybatis的jar包。2、mybatis的核心组件mybatis是由4个部分构成,sqlsessionFactoryBuilder(构造器),他会根据配置或代码来生成sqlSessionFactory,采用的是分布构建的Bui
IBM MQ 通道状态
yangkei
通道 MQ MQ IBM MQ
通道可以随时处于多种状态之一。一些状态也有子状态。通道可以从给定状态移动到其他状态。下图显示了所有可能的通道状态的层次结构以及适用于每个通道状态的子状态。Figure1通道状态之间的流动Figure2CurrentandactiveAchanneliscurrentifitisinanystateotherthaninactive.Acurrentchannelisactiveunlessitis
实现两个窗口通信方法之postMessage
itKingOne
javascript postmessage 页面通讯 跨域通讯
两个窗口的通信问题应该是一个比较常见的问题了,通信可以通过很多种方式,如下:localStoragepostMessagewebsocket今天博主先来一篇postMessage干货,后期还会给出websocket的实现代码。首先来看一下基本的语法otherWindow.postMessage(message,targetOrigin,[transfer]);otherWindow其他窗口的一个引
nginx过滤爬虫访问
梓沂
nginx 爬虫 运维
思路来自ai:Nginx可以通过多种方式来限制爬虫的行为:1.**User-Agent限制**:可以通过检查HTTP请求的User-Agent头部来识别并限制某些爬虫。例如,可以在Nginx配置文件中使用`if`语句来检查User-Agent,并使用`return`指令拒绝特定的User-Agent。```nginxif($http_user_agent~*(BadCrawler|AnotherB
vulnhub靶机-DC2-Writeup
含日
靶机 linux 安全 靶机 渗透测试 安全漏洞
0x01部署靶机地址:https://www.vulnhub.com/entry/dc-2,311/DESCRIPTIONMuchlikeDC-1,DC-2isanotherpurposelybuiltvulnerablelabforthepurposeofgainingexperienceintheworldofpenetrationtesting.AswiththeoriginalDC-1,i
解决Can‘t load tokenizer for ‘bert-base-chinese‘.问题
CSDNhdlg
NLP bert 人工智能 深度学习 自然语言处理
报错提示:OSError:Can'tloadtokenizerfor'bert-base-chinese'.Ifyouweretryingtoloaditfrom'https://huggingface.co/models',makesureyoudon'thavealocaldirectorywiththesamename.Otherwise,makesure'bert-base-chinese
水风的ScalersTalk第四轮新概念朗读持续力训练Day 141 20190225
喵小园upup
练习材料Lesson23-1Oneman’smeatisanotherman’spoisonPeoplebecomequiteillogicalwhentheytrytodecidewhatcanbeeatenandwhatcannotbeeaten.IfyoulivedintheMediterranean,forinstance,youwouldconsideroctopusagreatdeli
大数据知识总结(三):Hadoop之Yarn重点架构原理
Lansonli
大数据 大数据 hadoop 架构 Yarn
文章目录Hadoop之Yarn重点架构原理一、Yarn介绍二、Yarn架构三、Yarn任务运行流程四、Yarn三种资源调度器特点及使用场景Hadoop之Yarn重点架构原理一、Yarn介绍ApacheHadoopYarn(YetAnotherReasourceNegotiator,另一种资源协调者)是Hadoop2.x版本后使用的资源管理器,可以为上层应用提供统一的资源管理平台。二、Yarn架构Y
Proto3:File Location - 文件位置
Upping8
Prefernottoput.protofilesinthesamedirectoryasotherlanguagesources.Considercreatingasubpackageprotofor.protofiles,undertherootpackageforyourproject.如果不喜欢将.proto文件和其他语言资源放在同一个目录中。考虑在工程根包下为.proto文件创建一个子包
吃了一口的苹果
markwang100
Apple这吃了一口的苹果,从那美丽的童话故事,到伟大的天才,再到伟大的技术公司Apple白雪公主的故事关于白雪公主的故事,大家都非常熟悉,那个恶毒的皇后用毒苹果引诱白雪公主,导致公主昏迷不行。白雪公主吃了一口毒苹果,便昏迷过去了,那个毒苹果带来的隐喻是:看起来美好但是有害的TheApplewassopreparedthaonesidewasgood,thoughtheothersidewaspo
05-树8 File Transfer(C)
L_glonar
c语言 数据结构
日常,满分Wehaveanetworkofcomputersandalistofbi-directionalconnections.Eachoftheseconnectionsallowsafiletransferfromonecomputertoanother.Isitpossibletosendafilefromanycomputeronthenetworktoanyother?InputSp
html网页制作每周食谱,新增食谱.html
PEI Lobster
新增食谱$axure.utils.getTransparentGifPath=function(){return'resources/images/transparent.gif';};$axure.utils.getOtherPath=function(){return'resources/Other.html';};$axure.utils.getReloadPath=function(){
python之异常处理
小鱼爱吃火锅
Python python
在Python中,异常处理是一个重要的机制,用于捕获和处理程序运行过程中可能发生的错误。通过异常处理,程序可以在遇到错误时采取适当的措施,而不是直接崩溃。基本语法Python使用try、except、else和finally关键字来处理异常。try:#可能会引发异常的代码passexceptSomeExceptionase:#处理特定异常的代码passexceptAnotherExceptiona
《终极自由之路》11.如何揭露头脑
觉醒吧
翻译:小粒子儿大天体SeethesourceofthemindandyouwillfindyourSelf.看清头脑的根源,你会发现你的真我。Turnthemindbackuponthemindanditwillrevealitssecrets.将头脑转回头脑上,头脑会透露它的秘密。Concentratethemindononethoughtandallotherthoughtswilldropa
2023-02-08
妙手挥毫著文章
【妙手挥毫著文章】七律·元宵节(2023年2月5日正月十五)https://www.meipian.cn/4lzuow5l?first_share_to=other&share_depth=1&first_share_uid=31574673&from=other(分享自美篇)
一定的年纪,不一定的坚持
王凯泽
一觉醒来后,照镜子发现自己:突-然-变-老-了。那一刻开始害怕,诅咒岁月无情,催人老啊!到了一定年纪,很多事情无论你做与不做,它们都会迎头赶上;很多人,无论你喜不喜欢,他们都会与你发生交集。明天,代表着希望,是象征,是新的起点。现在的我们不敢再坚定的说:tommorrowisanotherday.如果今天的我们,不愿意付出,还不学习和做出改变,那么明天的我们未必会幸福,过上自己想要的生活。我们要接
pytorch torch.matmul函数介绍
qq_27390023
pytorch 人工智能 python
torch.matmul是PyTorch中用于进行矩阵乘法的函数。它可以执行两维矩阵、向量和更高维张量之间的乘法运算,支持的运算取决于输入张量的维度。1.函数签名torch.matmul(input,other,out=None)input:左乘的张量。other:右乘的张量。out:可选,用于存储输出结果的张量。2.不同维度的乘法规则torch.matmul根据输入张量的维度执行不同类型的乘法:
vim之将文件的内容追加到当前文件的尾部
MikelSun
vim编辑器 vim 编辑器 linux
a.使用:r命令(read的缩写)来将一个文件的内容读取并插入到当前文件的结尾。1.打开你想要修改的文件。vimfilename.txt2.在Vim的命令模式下(按Esc键确保你处于命令模式),输入:r命令,然后跟上你想要读取的文件的路径。:r/path/to/otherfile.txt3.按Enter键执行命令。此时,otherfile.txt的内容会被插入到filename.txt的当前光标位
TOMCAT在POST方法提交参数丢失问题
357029540
java tomcat jsp
摘自http://my.oschina.net/luckyi/blog/213209
昨天在解决一个BUG时发现一个奇怪的问题,一个AJAX提交数据在之前都是木有问题的,突然提交出错影响其他处理流程。
检查时发现页面处理数据较多,起初以为是提交顺序不正确修改后发现不是由此问题引起。于是删除掉一部分数据进行提交,较少数据能够提交成功。
恢复较多数据后跟踪提交FORM DATA ,发现数
在MyEclipse中增加JSP模板 删除-2008-08-18
ljy325
jsp xml MyEclipse
在D:\Program Files\MyEclipse 6.0\myeclipse\eclipse\plugins\com.genuitec.eclipse.wizards_6.0.1.zmyeclipse601200710\templates\jsp 目录下找到Jsp.vtl,复制一份,重命名为jsp2.vtl,然后把里面的内容修改为自己想要的格式,保存。
然后在 D:\Progr
JavaScript常用验证脚本总结
eksliang
JavaScript javaScript表单验证
转载请出自出处:http://eksliang.iteye.com/blog/2098985
下面这些验证脚本,是我在这几年开发中的总结,今天把他放出来,也算是一种分享吧,现在在我的项目中也在用!包括日期验证、比较,非空验证、身份证验证、数值验证、Email验证、电话验证等等...!
&nb
微软BI(4)
18289753290
微软BI SSIS
1)
Q:查看ssis里面某个控件输出的结果:
A MessageBox.Show(Dts.Variables["v_lastTimestamp"].Value.ToString());
这是我们在包里面定义的变量
2):在关联目的端表的时候如果是一对多的关系,一定要选择唯一的那个键作为关联字段。
3)
Q:ssis里面如果将多个数据源的数据插入目的端一
定时对大数据量的表进行分表对数据备份
酷的飞上天空
大数据量
工作中遇到数据库中一个表的数据量比较大,属于日志表。正常情况下是不会有查询操作的,但如果不进行分表数据太多,执行一条简单sql语句要等好几分钟。。
分表工具:linux的shell + mysql自身提供的管理命令
原理:使用一个和原表数据结构一样的表,替换原表。
linux shell内容如下:
=======================开始 
本质的描述与因材施教
永夜-极光
感想 随笔
不管碰到什么事,我都下意识的想去探索本质,找寻一个最形象的描述方式。
我坚信,世界上对一件事物的描述和解释,肯定有一种最形象,最贴近本质,最容易让人理解
&
很迷茫。。。
随便小屋
随笔
小弟我今年研一,也是从事的咱们现在最流行的专业(计算机)。本科三流学校,为了能有个更好的跳板,进入了考研大军,非常有幸能进入研究生的行业(具体学校就不说了,怕把学校的名誉给损了)。
先说一下自身的条件,本科专业软件工程。主要学习就是软件开发,几乎和计算机没有什么区别。因为学校本身三流,也就是让老师带着学生学点东西,然后让学生毕业就行了。对专业性的东西了解的非常浅。就那学的语言来说
23种设计模式的意图和适用范围
aijuans
设计模式
Factory Method 意图 定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method 使一个类的实例化延迟到其子类。 适用性 当一个类不知道它所必须创建的对象的类的时候。 当一个类希望由它的子类来指定它所创建的对象的时候。 当类将创建对象的职责委托给多个帮助子类中的某一个,并且你希望将哪一个帮助子类是代理者这一信息局部化的时候。
Abstr
Java中的synchronized和volatile
aoyouzi
java volatile synchronized
说到Java的线程同步问题肯定要说到两个关键字synchronized和volatile。说到这两个关键字,又要说道JVM的内存模型。JVM里内存分为main memory和working memory。 Main memory是所有线程共享的,working memory则是线程的工作内存,它保存有部分main memory变量的拷贝,对这些变量的更新直接发生在working memo
js数组的操作和this关键字
百合不是茶
js 数组操作 this关键字
js数组的操作;
一:数组的创建:
1、数组的创建
var array = new Array(); //创建一个数组
var array = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]
别人的阿里面试感悟
bijian1013
面试分享 工作感悟 阿里面试
原文如下:http://greemranqq.iteye.com/blog/2007170
一直做企业系统,虽然也自己一直学习技术,但是感觉还是有所欠缺,准备花几个月的时间,把互联网的东西,以及一些基础更加的深入透析,结果这次比较意外,有点突然,下面分享一下感受吧!
&nb
淘宝的测试框架Itest
Bill_chen
spring maven 框架 单元测试 JUnit
Itest测试框架是TaoBao测试部门开发的一套单元测试框架,以Junit4为核心,
集合DbUnit、Unitils等主流测试框架,应该算是比较好用的了。
近期项目中用了下,有关itest的具体使用如下:
1.在Maven中引入itest框架:
<dependency>
<groupId>com.taobao.test</groupId&g
【Java多线程二】多路条件解决生产者消费者问题
bit1129
java多线程
package com.tom;
import java.util.LinkedList;
import java.util.Queue;
import java.util.concurrent.ThreadLocalRandom;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.loc
汉字转拼音pinyin4j
白糖_
pinyin4j
以前在项目中遇到汉字转拼音的情况,于是在网上找到了pinyin4j这个工具包,非常有用,别的不说了,直接下代码:
import java.util.HashSet;
import java.util.Set;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin
org.hibernate.TransactionException: JDBC begin failed解决方案
bozch
ssh 数据库异常 DBCP
org.hibernate.TransactionException: JDBC begin failed: at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:68) at org.hibernate.impl.SessionImp
java-并查集(Disjoint-set)-将多个集合合并成没有交集的集合
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.ut
Java PrintWriter打印乱码
chenbowen00
java
一个小程序读写文件,发现PrintWriter输出后文件存在乱码,解决办法主要统一输入输出流编码格式。
读文件:
BufferedReader
从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。
可以指定缓冲区的大小,或者可使用默认的大小。大多数情况下,默认值就足够大了。
通常,Reader 所作的每个读取请求都会导致对基础字符或字节流进行相应的读取请求。因
[天气与气候]极端气候环境
comsci
环境
如果空间环境出现异变...外星文明并未出现,而只是用某种气象武器对地球的气候系统进行攻击,并挑唆地球国家间的战争,经过一段时间的准备...最大限度的削弱地球文明的整体力量,然后再进行入侵......
那么地球上的国家应该做什么样的防备工作呢?
&n
oracle order by与union一起使用的用法
daizj
UNION oracle order by
当使用union操作时,排序语句必须放在最后面才正确,如下:
只能在union的最后一个子查询中使用order by,而这个order by是针对整个unioning后的结果集的。So:
如果unoin的几个子查询列名不同,如
Sql代码
select supplier_id, supplier_name
from suppliers
UNI
zeus持久层读写分离单元测试
deng520159
单元测试
本文是zeus读写分离单元测试,距离分库分表,只有一步了.上代码:
1.ZeusMasterSlaveTest.java
package com.dengliang.zeus.webdemo.test;
import java.util.ArrayList;
import java.util.List;
import org.junit.Assert;
import org.j
Yii 截取字符串(UTF-8) 使用组件
dcj3sjt126com
yii
1.将Helper.php放进protected\components文件夹下。
2.调用方法:
Helper::truncate_utf8_string($content,20,false); //不显示省略号 Helper::truncate_utf8_string($content,20); //显示省略号
&n
安装memcache及php扩展
dcj3sjt126com
PHP
安装memcache tar zxvf memcache-2.2.5.tgz cd memcache-2.2.5/ /usr/local/php/bin/phpize (?) ./configure --with-php-confi
JsonObject 处理日期
feifeilinlin521
java json JsonOjbect JsonArray JSONException
写这边文章的初衷就是遇到了json在转换日期格式出现了异常 net.sf.json.JSONException: java.lang.reflect.InvocationTargetException 原因是当你用Map接收数据库返回了java.sql.Date 日期的数据进行json转换出的问题话不多说 直接上代码
&n
Ehcache(06)——监听器
234390216
监听器 listener ehcache
监听器
Ehcache中监听器有两种,监听CacheManager的CacheManagerEventListener和监听Cache的CacheEventListener。在Ehcache中,Listener是通过对应的监听器工厂来生产和发生作用的。下面我们将来介绍一下这两种类型的监听器。
activiti 自带设计器中chrome 34版本不能打开bug的解决
jackyrong
Activiti
在acitivti modeler中,如果是chrome 34,则不能打开该设计器,其他浏览器可以,
经证实为bug,参考
http://forums.activiti.org/content/activiti-modeler-doesnt-work-chrome-v34
修改为,找到
oryx.debug.js
在最头部增加
if (!Document.
微信收货地址共享接口-终极解决
laotu5i0
微信开发
最近要接入微信的收货地址共享接口,总是不成功,折腾了好几天,实在没办法网上搜到的帖子也是骂声一片。我把我碰到并解决问题的过程分享出来,希望能给微信的接口文档起到一个辅助作用,让后面进来的开发者能快速的接入,而不需要像我们一样苦逼的浪费好几天,甚至一周的青春。各种羞辱、谩骂的话就不说了,本人还算文明。
如果你能搜到本贴,说明你已经碰到了各种 ed
关于人才
netkiller.github.com
工作 面试 招聘 netkiller 人才
关于人才
每个月我都会接到许多猎头的电话,有些猎头比较专业,但绝大多数在我看来与猎头二字还是有很大差距的。 与猎头接触多了,自然也了解了他们的工作,包括操作手法,总体上国内的猎头行业还处在初级阶段。
总结就是“盲目推荐,以量取胜”。
目前现状
许多从事人力资源工作的人,根本不懂得怎么找人才。处在人才找不到企业,企业找不到人才的尴尬处境。
企业招聘,通常是需要用人的部门提出招聘条件,由人
搭建 CentOS 6 服务器 - 目录
rensanning
centos
(1) 安装CentOS
ISO(desktop/minimal)、Cloud(AWS/阿里云)、Virtualization(VMWare、VirtualBox)
详细内容
(2) Linux常用命令
cd、ls、rm、chmod......
详细内容
(3) 初始环境设置
用户管理、网络设置、安全设置......
详细内容
(4) 常驻服务Daemon
【求助】mongoDB无法更新主键
toknowme
mongodb
Query query = new Query(); query.addCriteria(new Criteria("_id").is(o.getId())); &n
jquery 页面滚动到底部自动加载插件集合
xp9802
jquery
很多社交网站都使用无限滚动的翻页技术来提高用户体验,当你页面滑到列表底部时候无需点击就自动加载更多的内容。下面为你推荐 10 个 jQuery 的无限滚动的插件:
1. jQuery ScrollPagination
jQuery ScrollPagination plugin 是一个 jQuery 实现的支持无限滚动加载数据的插件。
2. jQuery Screw
S