Expert JavaScript 1st Edition by Mark Daggett – Ebook PDF Instant Download/Delivery: 9781430260981, 143026098X
Full download Expert JavaScript 1st Edition after payment
Product details:
• ISBN 10:143026098X
• ISBN 13:9781430260981
• Author:Mark Daggett
Expert JavaScript
Expert JavaScript is your definitive guide to understanding how and why JavaScript behaves the way it does. Master the inner workings of JavaScript by learning in detail how modern applications are made. In covering lesser-understood aspects of this powerful language and truly understanding how it works, your JavaScript code and programming skills will improve. You will learn about core fundamentals of JavaScript, including deep dives into functions, scopes, closures, and practical object-oriented code. Mark Daggett explains clearly how closures, events, and asynchronous code really operate, as well as conventions and concepts to write JavaScript in a clear, pragmatic style. Many of the changes in ECMAScript6 and its implications are all explained. You’ll be introduced to modern workflow tools to make application development faster, more enjoyable, and ostensibly more profitable. You’ll understand how to measure code quality and write more testable JavaScript, and finally you’ll learn about real-world applications of JavaScript, including JavaScript-powered robots. JavaScript is one of the most powerful languages on the web today, and it is only getting stronger. This book will take you through the process of planning, coding, testing, profiling and finally releasing your application, at expert level. With more frameworks and more improvements than ever, now is the time to become an expert at JavaScript. Make this journey – use Expert JavaScript today.
Expert JavaScript 1st Table of contents:
Chapter 1: Objects and Prototyping
JavaScript from a Bird’s-Eye View
Scripting by Design
Objects Overview
Objectified
Property Manager
configurable
enumerable
writable
Inspecting Objects
Object.getOwnPropertyDescriptor
Object.getOwnPropertyNames
Object.getPrototypeOf
Object.hasOwnProperty
Object.keys
Object.isFrozen
Object.isPrototypeOf
Object.isExtensible
Object.isSealed
Object.valueOf
Object.is (ECMAScript 6)
Modifying Objects
Object.freeze
Object.defineProperties
Object.defineProperty
Object.preventExtensions
Object.prototype
Object.seal
Calling Objects
Function.call and Function.apply
Creating Objects
Object Literals
new Object()
1. JavaScript Creates a New Object
2. JavaScript Links the Constructor of the Newly Created Object to the Animal Function
3. JavaScript Links the Object’s Prototype to Animal.prototype
4. JavaScript Assigns Any Supplied Arguments to the Newly Created Object
Object.create
Programming Prototypically
Abstraction
Encapsulation
Polymorphism
Ad Hoc Polymorphism
Function Overloading
Operator Overloading
Inheritance
Power of Prototype
Understanding Prototypes
Class by Convention
Constructors
Instance Properties
Instance Methods
Class Properties
Class Methods
Summary
Chapter 2: Functions
Blocks in JavaScript
Function Arguments
Winning Arguments
defaultParameters (ECMAScript 6)
rest (ECMAScript 6)
Function Types
Function Scopes
Arrow Prone (ECMAScript 6)
Function Fu
Expression Closures
Immediately Invoked Function Expressions
Recursive Functions
Higher-Order Functions
Debugging Functions
Summary
Chapter 3: Getting Closure
The Straight Dope on Scope
Thisunderstandings
Let There Be Block Scope
My First Closure
Why Use Closures?
Object Factories
Create a Binding Proxy
Contextually Aware DOM Manipulation
Singleton Module Pattern
Summary
Chapter 4: Jargon and Slang
Jargon.prototype = new Slang( )
What Is Programmatic Jargon?
Coercion
To String
To number
Context-Aware Coercion
Coercion Gotchas
Mixed Type Comparison Through Coercion
Complex Coercion
Logical Operators
Logical AND (&&)
Assignments Through Comparisons or Implicit Fallback
Logical OR (||)
Default Values
Logical NOT (!)
Shorthand Boolean
Double NOTs
Immediately Invoked Function Expression
Bit Twiddling
Bitwise AND (&)
Converting Hex to RGB
Bitwise OR (|)
Truncating Numbers
Bitwise XOR (^)
Determining Sign Equality
Toggling Bits
Bitwise NOT (~)
Bitwise Arithmetic
Parsing Strings into Numbers
Bitwise Shifting (<>, >>>)
Signum Function
Opaque Code
Sneaky eval
All Your Base
Unicode for Variables
WAT Indeed
Summary
Additional References
Chapter 5: Living Asynchronously
Understanding Concurrency in JavaScript
Concurrency
Advantages of Concurrency
Disadvantages of Concurrency
The Hard Truth of Concurrency in JavaScript
Understanding JavaScript Event Loop
Run-to-Completion
Evented by Design
Inside the Event Loop
Heap
Frame
Stack
Queue
Callbacks
Perceived Performance
Continuation Passing Style
Callback Hell
Promises: Back from the Future
Keeping Promises
Chained and Deferred Execution
Parallel Joins
Generators and Coroutines
Generators
Coroutines by Convention
Continuable Generators
Web Workers
Concurrency
Knowing When to Be a Foreman
Advantages
Disadvantages
Hiring Workers
Basics
Dedicated Workers
Shared workers
Subworkers
Blob the Builder
Summary
Additional Resources
Callbacks
Generators
Coroutines
Promises
Web Workers
Chapter 6: JavaScript IRL
Diary of a Hardware Wannabe
Fire Hoses
Hardware for Everyone Else
Let’s Get Physical
Physical Computing
An Internet of Things
Why JavaScript
Building Bridges
Reactive Programming Paradigm
NodeBots: Fast, Cheap, and Servo-controlled
REPL
Advantages
Disadvantages
Why Bother?
Prerequisites
General
Windows
Mac OS X
Linux
Shopping List
Arduino IDE
Setup
Smoke Test
Step 1: Connect the Board
Step 2: Select the Correct Board
Step 3: Write Firmware
Step 4: Compile and Upload a Firmware
Step 5: Unplug Arduino
Node Serial Port
Smoke Test
Step 1: Connect the Board
Step 2: Select the Correct Board
Step 3: Write Firmware
Step 4: Compile and Upload Firmware
Step 5: Install Node Serial Port
Step 6: Write a Program
Step 7: Unplug Arduino
Too Close for Comfort
Firmata
Smoke Test
Step 1: Connect the Board
Step 2: Select the Correct Board
Step 3: Locate the Serial Port
Step 4: Install Firmata Firmware
Step 5: Install the Firmata Library
Step 6: Write a Program
Step 7: Unplug Arduino
REPL for Real
Johnny-Five
Smoke Test
Step 1: Connect the Board
Step 2: Install Johnny-Five
Step 3: Write a Program
Step 4: Unplug Arduino
Fiddling with Johnny-Five
Step 1: Prepare the Board
Step 2: Connect the Board
Step 3: Write a Program
Step 4: Unplug Arduino
Number Five Is Alive
Fauxbots
Additional Resources
Chapter 7: Style
What Is Style?
What Is Programmatic Style?
Consistency
Expressiveness
Succinctness
Restraint
JavaScript Style Guide
Rules for Visual Clarity
Document Formatting
Naming Conventions
Constants
Additional Naming Conventions
Constants and Variables
Blank Lines
Commas
Semicolons
Whitespace
Brackets and Braces
Whitespace Use with Brackets and Braces
Strings
Functions
Comments
Rules for Computational Effectiveness
Equality Comparisons and Conditional Evaluation
Constants and Variables
Function Expressions
Objects
Arrays
Separation of Concerns
Operating Context and Scope
Coercion
Enforcing Style
Beautifiers
Enforcing through the IDE
Enforcing Style Through JSHint
Summary
Chapter 8: Workflow
Don’t Shovel Snow
What Is Workflow
A Sensible JavaScript Development Workflow
Tool Choice
Ordering Tools
Price
Convenience
Return Policy
JavaScript Package Managers
Bower to the People
Bower Beware
Dependency Management
Protecting the Upgrade Path
Bootstrapping
Using Yeoman
Scaffolding
Package Management
Built-in Server
Development
A case of CoffeeScript
Write Less
Opinionated Translations
Fail Fast
Uniform Team Code
Lint Traps
Enforceable Options
Relaxable Options
Environment Options
Testing
How to Test
Karma
The Ghost with the Most
What to Test
Unit Tests
Integration Tests
Performance Tests
Compatibility Tests
Browserstack
Bunyip
Adobe Inspect
Building
Compilation
Analysis
Concatenation
Optimization
Testing
Notification
Support
Error Reporting in JavaScript
Unravelling the Sweater
Summary
Chapter 9: Code Quality
Defining Code Quality
Subjective Quality
Objective Quality
How Is Quality Measured?
Why Measure Code Quality?
Measuring Code Quality in JavaScript
Static Code Analysis
Syntax Validations
Complexity
Measuring Complexity Through Code Metrics
Excessive Comments
Lines of Code
Coupling
Variables per Function
Arguments per Function
Nesting Depth
Cyclomatic Complexity
Basic Example
Limitations
NPATH Complexity
Basic Example
Limitations
Halstead Metrics
Inputs
Program Length (N)
Vocabulary Size (n)
Program Volume (V)
Program Level (L)
Difficulty Level (D)
Programming Effort (E)
Time to Implement (T)
Number of Bugs (B)
Limitations
Tooling
Complexity Report
Basic Example
Plato
Project Quality Timeline
Project Metric View
File Quality Overview
File Quality Timeline
Function Quality
Source View
Summary
Chapter 10: Improving Testability
Why Testing Fails to Test
Testing Fallacies
Testing Proves that There Are No Bugs in a Program
Successful Tests Are Those that Complete Without Errors
Testing Ensures that the Program Is High Quality
Testing Prevents Future Errors
Testing Proves that the Program Works as Designed
Confirmation Bias
Selective Seeing
The Curse of Knowledge
If at First You Succeed
The Pesticide Paradox
Defect Clusters
Framework Bias
Mitigating Confirmation Bias
Test to Fail
Get Critical Distance
Find the Edges
Finding a Baseline
Statement Coverage
Function Coverage
Branch Coverage
Istanbul
Installing Istanbul
cover
Coverage Bias
Bias Busting Tests
Fuzz Testing
JSCheck
Installing JSCheck
Basic Example
Making a Claim
Name
Predicate
Signature
Classifier
Checking a Claim
Automaton Testing
Tapster
Summary
Index
People also search for Expert JavaScript 1st:
expert javascript 1st edition
expert javascript
javascript expert interview questions
learn javascript for experienced programmers
javascript for experienced programmers
Tags:
Expert JavaScript,JavaScript 1st Edition,Mark Daggett