豎線是位移運算符
站在用戶的角度思考問題,與客戶深入溝通,找到宛城網(wǎng)站設(shè)計與宛城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋宛城地區(qū)。
| 表示 位或
如:
3|5
00000011 | 00000101 = 00000111
結(jié)果為7
javascript是一門腳本編程語言。一般至少要學(xué)1~2個月,才有效果,也視個人天賦而定。當然也少不了大量練習(xí),要經(jīng)常自己動手寫 特效。要求網(wǎng)上大部分特效,你都能改。然后自己能寫一些簡單的特效,就算入門了。但要精通的話就得花些時間了,最好參與些項目,很多技巧不通過項目這樣比較大的歷練是用不上的。千鋒軟件開發(fā)培訓(xùn)課程的授課模式采用全程面授,講師成本雖高,但是效果卻是顯著的,和學(xué)員面對面溝通,了解到學(xué)員在學(xué)習(xí)過程中遇到的問題,動態(tài)地調(diào)整授課方式。
千鋒教育就有線上免費的軟件開發(fā)公開課,。
JavaScript是腳本語言,主要用來編寫動態(tài)網(wǎng)頁。建議先從基本的HTML和CSS學(xué)起,學(xué)學(xué)靜態(tài)頁面布局。然后在網(wǎng)上找一些javascript入門級的視頻教程,按照教程一步步由淺入深按部就班的學(xué)習(xí)就OK。
編程一方面靠的是邏輯思維,另一方面也是一個孰能生巧的過程,只要多敲幾遍代碼,將基礎(chǔ)知識融會貫通,肯定能夠?qū)W好的。千鋒教育集團目前已與國內(nèi)4000多家企業(yè)建立人才輸送合作,與500多所大學(xué)建立實訓(xùn)就業(yè)合作,每年為各大企業(yè)輸送上萬名移動開發(fā)工程師,每年有數(shù)十萬名學(xué)員受益于千鋒教育組織的技術(shù)研討會、技術(shù)培訓(xùn)課、網(wǎng)絡(luò)公開課及免費教學(xué)視頻。
語言無關(guān)類
操作系統(tǒng)
鳥哥的Linux私房菜 (簡體)
Linux 系統(tǒng)高級編程
The Linux Command Line (中英文版)
Linux 設(shè)備驅(qū)動 (第三版)
深入分析Linux內(nèi)核源碼
UNIX TOOLBOX
Docker中文指南
Docker —— 從入門到實踐
FreeRADIUS新手入門
Mac 開發(fā)配置手冊
FreeBSD 使用手冊
Linux 命令行(中文版)
智能系統(tǒng)
一步步搭建物聯(lián)網(wǎng)系統(tǒng)
web服務(wù)器
Nginx開發(fā)從入門到精通 (淘寶團隊出品)
版本控制
Git教程 (本文由 ?@廖雪峰 創(chuàng)作,如果覺得本教程對您有幫助,可以去 ?iTunes 購買)
git – 簡易指南
猴子都能懂的GIT入門
Git 參考手冊
Pro Git
Git Magic
GotGitHub
Git Community Book 中文版
Mercurial 使用教程
HgInit (中文版)
沉浸式學(xué) Git
Git-Cheat-Sheet (感謝 @flyhigher139 翻譯了中文版)
GitHub秘籍
NoSQL
NoSQL數(shù)據(jù)庫筆談 (PDF)
Redis 設(shè)計與實現(xiàn)
Redis 命令參考
帶有詳細注釋的 Redis 3.0 代碼
帶有詳細注釋的 Redis 2.6 代碼
The Little MongoDB Book
The Little Redis Book
Neo4j 簡體中文手冊 v1.8
Neo4j .rb 中文資源
MySQL
MySQL索引背后的數(shù)據(jù)結(jié)構(gòu)及算法原理
項目相關(guān)
持續(xù)集成(第二版) (譯言網(wǎng))
讓開發(fā)自動化系列專欄
追求代碼質(zhì)量
selenium 中文文檔
Joel談軟件
約耳談軟體(Joel on Software)
Web
關(guān)于瀏覽器和網(wǎng)絡(luò)的 20 項須知
前端知識體系
瀏覽器開發(fā)工具的秘密
Chrome 開發(fā)者工具中文手冊
Chrome擴展開發(fā)文檔
Grunt中文文檔
移動Web前端知識庫
正則表達式30分鐘入門教程
前端開發(fā)體系建設(shè)日記
移動前端開發(fā)收藏夾
JSON風(fēng)格指南
HTTP 接口設(shè)計指北
前端資源分享(一)
前端資源分享(二)
前端代碼規(guī)范 及 最佳實踐
w3school教程整理
大數(shù)據(jù)
大數(shù)據(jù)/數(shù)據(jù)挖掘/推薦系統(tǒng)/機器學(xué)習(xí)相關(guān)資源
編程藝術(shù)
程序員編程藝術(shù)
每個程序員都應(yīng)該了解的內(nèi)存知識(譯)【第一部分】
取悅的工序:如何理解游戲 (豆瓣閱讀,免費書籍)
其他
OpenWrt智能、自動、透明翻墻路由器教程
語言相關(guān)類 AWK
awk程序設(shè)計語言
C/C++
C++ 并發(fā)編程指南 (@傅海平ICT)
Linux C編程一站式學(xué)習(xí) (宋勁杉, 北京亞嵌教育研究中心)
CGDB中文手冊
100個gdb小技巧
100個gcc小技巧
ZMQ 指南
How to Think Like a Computer Scientist (中英文版)
跟我一起寫Makefile(PDF)
GNU make中文手冊
GNU make 指南
Google C++ 風(fēng)格指南
C/C++ Primer (by @andycai)
簡單易懂的C魔法
Cmake 實踐 (PDF版)
C++ FAQ LITE(中文版)
C++ Primer 5th Answers
CSS/HTML
學(xué)習(xí)CSS布局
通用 CSS 筆記、建議與指導(dǎo)
CSS參考手冊
Emmet 文檔
前端代碼規(guī)范 (騰訊alloyteam團隊)
Dart
Dart 語言導(dǎo)覽
Fortran
Fortran77和90/95編程入門
Java
實時 Java 系列
Apache Shiro 用戶指南
使用 Eclipse 和 Java SE 6 創(chuàng)建獨立 Web Services 應(yīng)用程序
第 1 部分: Web Services 服務(wù)端應(yīng)用程序
第 2 部分: Web 服務(wù)客戶端應(yīng)用程序
JavaServer Faces 1.2 入門
第 1 部分: 構(gòu)建基本應(yīng)用程序
第 2 部分: JSF 生命周期、轉(zhuǎn)換、檢驗和階段監(jiān)聽器
用 Eclipse Europa 進行 Web 開發(fā)
第 1 部分: Eclipse Java EE
第 2 部分: PHP 開發(fā)工具
第 3 部分: Ruby Development Toolkit 和 RadRails
使用 JavaServer Faces 構(gòu)建 Apache Geronimo 應(yīng)用程序
第 1 部分: 使用 Eclipse 和 Apache MyFaces Core 構(gòu)建基本的應(yīng)用程序
第 2 部分: 在 JavaServer Faces 中使用 Tomahawk
第 3 部分: 使用 ajax4jsf 添加 Ajax 功能
第 4 部分: 使用 Apache Trinidad 組件擴展 JSF
第 5 部分: 將 JSF 應(yīng)用程序與 Spring 集成
Apache Geronimo 和 Spring 框架
第 1 部分: 開發(fā)方法學(xué)
第 2 部分: 構(gòu)建第一個應(yīng)用程序
第 3 部分: 集成 DAO 與 ORM
第 4 部分: 混合使用 Spring AOP 和 Spring Web Flow
第 5 部分: Spring MVC
第 6 部分: Spring MVC:使用 Web 視圖技術(shù)
終極 mashup —— Web 服務(wù)和語義 Web
第 1 部分: 使用與組合 Web 服務(wù)
第 2 部分: 管理 Mashup 數(shù)據(jù)緩存
第 3 部分: 理解 RDF 和 RDFs
第 4 部分: 創(chuàng)建本體
第 5 部分: 切換 Web 服務(wù)
Jersey 2.x 用戶指南
MyBatis中文文檔
JavaScript
Google JavaScript 代碼風(fēng)格指南
Airbnb JavaScript 規(guī)范
JavaScript 標準參考教程(alpha)
Javascript編程指南 (源碼)
javascript 的 12 個怪癖
JavaScript 秘密花園
JavaScript核心概念及實踐 (PDF) (此書已由人民郵電出版社出版發(fā)行,但作者依然免費提供PDF版本,希望開發(fā)者們?nèi)ベ徺I,支持作者)
《JavaScript 模式》翻譯,此書中文版有售,但是紙質(zhì)書翻譯的還沒有這個版本翻譯的好
命名函數(shù)表達式探秘 (注:原文由為之漫筆翻譯,原始地址無法打開,所以此處地址為我博客上的備份)
學(xué)用 JavaScript 設(shè)計模式 (開源中國)
深入理解JavaScript系列
ECMAScript 6 入門 (作者:阮一峰)
jQuery
jQuery 解構(gòu)
簡單易懂的JQuery魔法
How to write jQuery plugin
Node.js
Node入門
七天學(xué)會NodeJS
Nodejs Wiki Book (繁體中文)
express.js 中文文檔
koa 中文文檔
使用 Express + MongoDB 搭建多人博客
Express框架
nodejs文檔
Node.js 包教不包會
Learn You The Node.js For Much Win! (中文版)
Node debug 三法三例
underscore.js
Underscore.js中文文檔
backbone.js
backbone.js入門教程 (PDF)
Backbone.js入門教程第二版
Developing Backbone.js Applications(中文版)
AngularJS
AngularJS最佳實踐和風(fēng)格指南
AngularJS中譯本
AngularJS入門教程
構(gòu)建自己的AngularJS
在Windows環(huán)境下用Yeoman構(gòu)建AngularJS項目
zepto 簡明中文手冊
Sea.js
Hello Sea.js
CoffeeScript
CoffeeScript Cookbook
The Little Book on CoffeeScript中文版
ExtJS
Ext4.1.0 中文文檔
Chrome擴展及應(yīng)用開發(fā)
JavaScript入門教程
PHP
PHP調(diào)試技術(shù)手冊(PDF)
XDebug 2中文手冊(譯) (CHM)
PHP之道
PHP 最佳實踐
PHP安全最佳實踐
深入理解PHP內(nèi)核
PHP擴展開發(fā)及內(nèi)核應(yīng)用
CodeIgniter 用戶指南
Laravel4 中文文檔
Laravel 入門
Symfony2中文文檔 (未譯完)
Phalcon中文文檔(翻譯進行中)
YiiBook幾本Yii框架的在線教程
簡單易懂的PHP魔法
swoole文檔及入門教程
iOS
iOS開發(fā)60分鐘入門
iOS7人機界面指南
Google Objective-C Style Guide 中文版
iPhone 6 屏幕揭秘
Apple Watch開發(fā)初探
馬上著手開發(fā) iOS 應(yīng)用程序
網(wǎng)易斯坦福大學(xué)公開課:iOS 7應(yīng)用開發(fā)字幕文件
Android
Android Design(中文版)
Google Android官方培訓(xùn)課程中文版
Android學(xué)習(xí)之路
Python
小白的Python教程
簡明Python教程
零基礎(chǔ)學(xué)Python
Python 2.7 官方教程中文版
Python 3.3 官方教程中文版
深入 Python 3
PEP8 Python代碼風(fēng)格規(guī)范
Google Python 風(fēng)格指南 中文版
Python入門教程 (PDF)
Python的神奇方法指南
笨辦法學(xué) Python (PDF版下載)
Django 文檔中文版
Django 最佳實踐
The Django Book 中文版
web.py 0.3 新手指南
Web.py Cookbook 簡體中文版
Dive Into Python 中文版
Bottle 文檔中文版 (需翻墻)
Flask 文檔中文版
Jinja2 文檔中文版
Werkzeug 文檔中文版
Flask之旅
Introduction to Tornado 中文翻譯
Python自然語言處理中文版 (感謝陳濤同學(xué)的翻譯,也謝謝 ?@shwley 聯(lián)系了作者)
Python 繪圖庫 matplotlib 官方指南中文翻譯
Scrapy 0.25 文檔
ThinkPython
Ruby
Ruby 風(fēng)格指南
Rails 風(fēng)格指南
笨方法學(xué) Ruby
Ruby on Rails 指南
Ruby on Rails 實戰(zhàn)圣經(jīng)
Ruby on Rails Tutorial 原書第 2 版 (本書網(wǎng)頁版免費提供,電子版以 PDF、EPub 和 Mobi 格式提供購買,僅售 9.9 美元)
編寫Ruby的C拓展
Ruby 源碼解讀
Shell
Shell腳本編程30分鐘入門
Go
Go編程基礎(chǔ)
Go入門指南
學(xué)習(xí)Go語言 (PDF)
Go Web 編程 (此書已經(jīng)出版,希望開發(fā)者們?nèi)ベ徺I,支持作者的創(chuàng)作)
Go實戰(zhàn)開發(fā) (當我收錄此項目時,作者已經(jīng)寫完第三章,如果讀完前面章節(jié)覺得有幫助,可以給作者捐贈,以鼓勵作者的繼續(xù)創(chuàng)作)
Network programming with Go 中文翻譯版本
Groovy
實戰(zhàn) Groovy 系列
LaTeX
一份其實很短的 LaTeX 入門文檔
一份不太簡短的 LATEX 2ε 介紹 (PDF版)
LISP
ANSI Common Lisp 中文翻譯版
Lua
Lua編程入門
Haskell
Real World Haskell 中文版
R
R語言忍者秘笈
Scala
Scala課堂 (Twitter的Scala中文教程)
Effective Scala(Twitter的Scala最佳實踐的中文翻譯)
Scala指南
Swift
The Swift Programming Language 中文版
Perl
Modern Perl 中文版
Perl 程序員應(yīng)該知道的事
Prolog
笨辦法學(xué)Prolog
Vim中文文檔
Vimscript
笨方法學(xué)Vimscript 中譯本
Vim中文文檔
讀書筆記及其它 讀書筆記
編譯原理(紫龍書)中文第2版習(xí)題答案
把《編程珠璣》讀薄
Effective C++讀書筆記
Golang 學(xué)習(xí)筆記、Python 學(xué)習(xí)筆記、C 學(xué)習(xí)筆記 (PDF)
Jsoup 學(xué)習(xí)筆記
學(xué)習(xí)筆記: Vim、Python、memcached
圖靈開放書翻譯計劃–C++、Python、Java等
蒂姆·奧萊利隨筆 (由譯言網(wǎng)翻譯,電子版免費)
Octave 入門 (PDF版)
SICP 解題集
精彩博客集合
正則表達式簡明參考
1.檢查一個變量是否存在,是否有值.
typeof在兩種情況下會返回"undefined":一個變量沒有被聲明的時候,和一個變量的值是undefined的時候.例如:
typeof undeclaredVariable === "undefined" true var
declaredVariable; typeof declaredVariable 'undefined' typeof undefined
'undefined'
還有其他辦法檢測某個值是否是undefined:
var value = undefined; value === undefined true
但這種方法如果使用在一個未聲明的變量上的時候,就會拋出異常,因為只有typeof才可以正常檢測未聲明的變量的同時還不報錯:
undeclaredVariable === undefined ReferenceError: undeclaredVariable is
not defined
注意:未初始化的變量,沒有被傳入?yún)?shù)的形參,不存在的屬性,都不會出現(xiàn)上面的問題,因為它們總是可訪問的,值總是undefined:
var declaredVariable; declaredVariable === undefined true
(function (x) { return x === undefined }()) true ({}).foo === undefined
true
譯者注:因此,如果想檢測一個可能沒有被聲明的全局變量是否存在,也可以使用
if(window.maybeUndeclaredVariable){}
問題: typeof在完成這樣的任務(wù)時顯得很繁雜.
解決辦法:
這樣的操作不是很常見,所以有人覺的沒必要再找更好的解決辦法了.不過也許有人會提出一個專門的操作符:
defined undeclaredVariable false var declaredVariable; defined
declaredVariable false
或者,也許有人還需要一個檢測變量是否被聲明的操作符:
declared undeclaredVariable false var declaredVariable;
declared declaredVariable true
譯者注:在perl里,上面的defined操作符相當于defined(),上面的declared操作符相當于exists(),
2.判斷一個值不等于undefined也不等于null
問題:如果你想檢測一個值是否被定義過(值不是undefined也不是null),那么你就遇到了typeof最有名的一個怪異表現(xiàn)(被認為是一個bug):typeof
null返回了"object":
typeof null
'object'
譯者注:這只能說是最初的JavaScript實現(xiàn)的bug,而現(xiàn)在標準就是這樣規(guī)范的.V8曾經(jīng)修正并實現(xiàn)過typeof null ===
"null",但最終證明不可行.
解決辦法:
不要使用typeof來做這項任務(wù),用下面這樣的函數(shù)來代替:
function isDefined(x) { return x !== null x !== undefined; }
另一個可能性是引入一個“默認值運算符”,在myValue未定義的情況下,下面的表達式會返回defaultValue:
myValue ?? defaultValue
上面的表達式等價于:
(myValue !== undefined myValue !== null) ? myValue :
defaultValue
又或者:
myValue ??= defaultValue
其實是下面這條語句的簡化:
myValue = myValue ?? defaultValue
當你訪問一個嵌套的屬性時,比如bar,你或許會需要這個運算符的幫助:
obj.foo.bar
如果obj或者obj.foo是未定義的,上面的表達式會拋出異常.一個運算符.??可以讓上面的表達式在遍歷一層一層的屬性時,返回第一個遇到的值為undefined或null的屬性:
obj.??foo.??bar
上面的表達式等價于:
(obj === undefined || obj === null) ? obj : (obj.foo === undefined || obj.foo
=== null) ? obj.foo : obj.foo.bar
3.區(qū)分對象值和原始值
下面的函數(shù)用來檢測x是否是一個對象值:
function isObject(x) { return (typeof x === "function" || (typeof x ===
"object" x !== null)); }
問題:
上面的檢測比較復(fù)雜,是因為typeof把函數(shù)和對象看成是不同的類型,而且typeof null返回"object".
解決辦法: 下面的方法也經(jīng)常用于檢測對象值:
function isObject2(x) { return x === Object(x); }
警告:你也許認為這里可以使用instanceof
Object來檢測,但是instanceof是通過使用使用一個對象的原型來判斷實例關(guān)系的,那么沒有原型的對象怎么辦呢:
var obj = Object.create(null); Object.getPrototypeOf(obj) null
obj確實是一個對象,但它不是任何值的實例:
typeof obj 'object' obj instanceof Object false
在實際中,你可能很少遇到這樣的對象,但它的確存在,而且有它的用途.
譯者注:Object.prototype就是一個默認存在的,沒有原型的對象
Object.getPrototypeOf(Object.prototype)nulltypeof
Object.prototype'object'Object.prototype instanceof Object false
4.原始值的類型是什么?
typeof是最好的用來查看某個原始值的類型的方式.
typeof "abc" 'string' typeof undefined 'undefined'
問題:
你必須知道typeof null的怪異表現(xiàn).
typeof null // 要小心! 'object'
解決辦法: 下面的函數(shù)可以修復(fù)這個問題(只針對這個用例).
function getPrimitiveTypeName(x) { var typeName = typeof x; switch(typeName)
{ case "undefined": case "boolean": case "number": case "string": return
typeName; case "object": if (x === null) { return "null"; } default: //
前面的判斷都沒通過 throw new TypeError("參數(shù)不是一個原始值: "+x); } }
更好的解決辦法:
實現(xiàn)一個函數(shù)getTypeName(),除了可以返回原始值的的類型,還可以返回對象值的內(nèi)部[[Class]]屬性.這里講了如何實現(xiàn)這個函數(shù)(譯者注:jQuery中的$.type就是這樣的實現(xiàn))
5.某個值是否是函數(shù)
typeof可以用來檢測一個值是否是函數(shù).
typeof function () {} 'function' typeof Object.prototype.toString
'function'
原則上說,instanceof
Function也可以進行這種需求的檢測.乍一看,貌似寫法還更加優(yōu)雅.但是,瀏覽器有一個怪癖:每一個框架和窗口都有它自己的全局變量.因此,如果你將某個框架中的對象傳到另一個框架中,instanceof就不能正常工作了,因為這兩個框架有著不同的構(gòu)造函數(shù).這就是為什么ECMAScript5中會有Array.isArray()方法的原因.如果有一個能夠跨框架的,用于檢查一個對象是否是給定的構(gòu)造函數(shù)的實例的方法的話,那會很好.上述的getTypeName()是一個可用的變通方法,但也許還有一個更根本的解決方案.
6.綜述
下面提到的,應(yīng)該是目前JavaScript中最迫切需要的,可以代替一些typeof目前職責的功能特性:
isDefined() (比如Object.isDefined()): 可以作為一個函數(shù)或者一個運算符
isObject()
getTypeName()
能夠跨框架的,檢測一個對象是否是指定的構(gòu)造函數(shù)的實例的機制
檢查某個變量是否已經(jīng)被聲明這樣的需求,可能沒那么必要有自己的運算符.