真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

javascript怪癖的簡單介紹

Javascript中的變量后加一豎線是什么意思

豎線是位移運算符

站在用戶的角度思考問題,與客戶深入溝通,找到宛城網(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é)習(xí)多久

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é)視頻。

GitHub 上有哪些值得推薦的開源電子書

語言無關(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 解題集

精彩博客集合

正則表達式簡明參考

JavaScript中typeof知多少

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)被聲明這樣的需求,可能沒那么必要有自己的運算符.


新聞名稱:javascript怪癖的簡單介紹
本文地址:http://weahome.cn/article/dsohhjg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部