100% found this document useful (1 vote)
39 views80 pages

(Ebook) Learning JavaScript Data Structures and Algorithms: Write complex and powerful JavaScript code using the latest ECMAScript, 3rd Edition by Loiane Groner ISBN B077NB5H6Y pdf download

The document provides information about various eBooks related to JavaScript, including titles like 'Learning JavaScript Data Structures and Algorithms' by Loiane Groner. It highlights the availability of instant digital downloads in multiple formats and outlines the author's background and contributions to the field. Additionally, it includes details about the structure and content of the book, covering topics from basic JavaScript to advanced data structures and algorithms.

Uploaded by

gamvdbw117
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
39 views80 pages

(Ebook) Learning JavaScript Data Structures and Algorithms: Write complex and powerful JavaScript code using the latest ECMAScript, 3rd Edition by Loiane Groner ISBN B077NB5H6Y pdf download

The document provides information about various eBooks related to JavaScript, including titles like 'Learning JavaScript Data Structures and Algorithms' by Loiane Groner. It highlights the availability of instant digital downloads in multiple formats and outlines the author's background and contributions to the field. Additionally, it includes details about the structure and content of the book, covering topics from basic JavaScript to advanced data structures and algorithms.

Uploaded by

gamvdbw117
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 80

(Ebook) Learning JavaScript Data Structures and

Algorithms: Write complex and powerful


JavaScript code using the latest ECMAScript, 3rd
Edition by Loiane Groner ISBN B077NB5H6Y
download
https://ebooknice.com/product/learning-javascript-data-
structures-and-algorithms-write-complex-and-powerful-javascript-
code-using-the-latest-ecmascript-3rd-edition-42371476

Download more ebook instantly today at https://ebooknice.com


Instant digital products (PDF, ePub, MOBI) ready for you
Download now and discover formats that fit your needs...

Start reading on any device today!

(Ebook) Learning JavaScript Data Structures and Algorithms by Loiane Groner ISBN
9781785285493, 1785285491

https://ebooknice.com/product/learning-javascript-data-structures-and-
algorithms-5847376

ebooknice.com

(Ebook) Estruturas de dados e algoritmos com JavaScript by Groner, Loiane

https://ebooknice.com/product/estruturas-de-dados-e-algoritmos-com-
javascript-37190150

ebooknice.com

(Ebook) JavaScript Regular Expressions by Groner, Loiane, Manricks, Gabriel ISBN


9781783282258, 1783282258

https://ebooknice.com/product/javascript-regular-expressions-55893704

ebooknice.com

(Ebook) Data Structures and Algorithms with JavaScript by Michael McMillan ISBN
9781449364939, 1449364934

https://ebooknice.com/product/data-structures-and-algorithms-with-
javascript-37208884

ebooknice.com
(Ebook) Beginning Functional JavaScript. Functional Programming with JavaScript
using EcmaScript 6 by Anto Aravinth ISBN 9781484226568, 1484226569

https://ebooknice.com/product/beginning-functional-javascript-functional-
programming-with-javascript-using-ecmascript-6-5755216

ebooknice.com

(Ebook) Beginning Functional JavaScript: Functional Programming with JavaScript


Using EcmaScript 6 by Anto Aravinth ISBN 9781484226551, 9781484226568, 1484226550,
1484226569

https://ebooknice.com/product/beginning-functional-javascript-functional-
programming-with-javascript-using-ecmascript-6-22627242

ebooknice.com

(Ebook) JavaScript Data Structures and Algorithms: An Introduction to Understanding


and Implementing Core Data Structure and Algorithm Fundamentals by Sammie Bae ISBN
9781484239889, 1484239881

https://ebooknice.com/product/javascript-data-structures-and-algorithms-an-
introduction-to-understanding-and-implementing-core-data-structure-and-
algorithm-fundamentals-52953836

ebooknice.com

(Ebook) Learning Behavior-driven Development with JavaScript_ Create powerful yet


simple-to-code BDD test suites in JavaScript using the most popular tools in the
community by kan

https://ebooknice.com/product/learning-behavior-driven-development-with-
javascript-create-powerful-yet-simple-to-code-bdd-test-suites-in-javascript-
using-the-most-popular-tools-in-the-community-50195346

ebooknice.com

(Ebook) -■■JavaScript■■■■■■■■■■ Learning JavaScript Data Structures and Algorithms


2nd Edition by [■■]■■■■LoianeGroner■, ■■■, ■■, ■■, ■■, ■■ ISBN 9787115467539,
7115467536

https://ebooknice.com/product/javascript-learning-javascript-data-structures-
and-algorithms-2nd-edition-10609092

ebooknice.com
Learning JavaScript Data Structures and Algorithms
Third Edition

Write complex and powerful JavaScript code using the latest


ECMAScript

Loiane Groner
BIRMINGHAM - MUMBAI
Learning JavaScript Data
Structures and Algorithms
Third Edition
Copyright © 2018 Packt Publishing

All rights reserved. No part of this book may be reproduced, stored in a retrieval system, or transmitted in any form or
by any means, without the prior written permission of the publisher, except in the case of brief quotations embedded in
critical articles or reviews.

Every effort has been made in the preparation of this book to ensure the accuracy of the information presented.
However, the information contained in this book is sold without warranty, either express or implied. Neither the author,
nor Packt Publishing or its dealers and distributors, will be held liable for any damages caused or alleged to have been
caused directly or indirectly by this book.

Packt Publishing has endeavored to provide trademark information about all of the companies and products
mentioned in this book by the appropriate use of capitals. However, Packt Publishing cannot guarantee the accuracy
of this information.

Commissioning Editor: Amarabha Banerjee


Acquisition Editor: Larissa Pinto
Content Development Editor: Flavian Vaz
Technical Editor: Vaibhav Dwivedi
Copy Editor: Safis Editing
Project Coordinator: Devanshi Doshi
Proofreader: Safis Editing
Indexer: Rekha Nair
Graphics: Jason Monteiro
Production Coordinator: Arvindkumar Gupta

First published: October 2014


Second edition: June 2016
Third edition: April 2018

Production reference: 1250418

Published by Packt Publishing Ltd.


Livery Place
35 Livery Street
Birmingham
B3 2PB, UK.

ISBN 978-1-78862-387-2
www.packtpub.com
To my parents, for their love and support and for guiding me throughout all these years.
To my husband, for his support and for being my loving partner throughout our life journey.
– Loiane Groner
mapt.io

Mapt is an online digital library that gives you full access to over
5,000 books and videos, as well as industry leading tools to help you
plan your personal development and advance your career. For more
information, please visit our website.
Why subscribe?
Spend less time learning and more time coding with practical
eBooks and Videos from over 4,000 industry professionals

Improve your learning with Skill Plans built especially for you

Get a free eBook or video every month

Mapt is fully searchable

Copy and paste, print, and bookmark content


PacktPub.com
Did you know that Packt offers eBook versions of every book
published, with PDF and ePub files available? You can upgrade to
the eBook version at www.PacktPub.com and as a print book customer, you
are entitled to a discount on the eBook copy. Get in touch with us at
[email protected] for more details.

At www.PacktPub.com, you can also read a collection of free technical


articles, sign up for a range of free newsletters, and receive
exclusive discounts and offers on Packt books and eBooks.
Contributors
About the author
Loiane Groner has over 10 years of experience in developing
enterprise applications. Currently, she works as a business analyst
and a Java/HTML5/JavaScript developer at an American financial
institution.

She is passionate about technology, publishes articles on her blog,


and has presented talks at conferences about Java, ExtJS, Cordova,
Ionic, TypeScript and Angular.

She is a Google Developer Expert in Web Technologies and Angular,


and a Microsoft Most Valuable Professional in Visual Studio and
Development Technologies. She has also authored other Packt
books.
I would like to thank my parents, for giving me education, guidance, and advices through all these years, and my
husband, for being patient and supportive and giving me encouragement so that I keep doing what I love.
I also would like to thank the readers of this book and other books that I have written for their support and feedback.
Thank you very much!
About the reviewers
Todd Zebert is a full stack web developer, currently at Miles.

He has been a technical reviewer for a number of books and videos,


is a frequent presenter at conferences on JavaScript, Drupal, and
related technologies, and has a technology blog on Medium.

He has a diverse background in technology, including infrastructure,


network engineering, PM, and IT leadership. He started web
development with the original Mosaic browser.

He is an entrepreneur and part of the LA start-up community. He


believes in volunteering, Open Source, Maker/STEM/STEAM, and
contributing back to the community.

Kashyap Mukkamala is a passionate software architect at Egen


Solutions Inc. and the author of Hands-On Data Structures and
Algorithms with JavaScript. When Kashyap is not solving problems
for Fortune 500 companies at Egen, he is focused on building the
web of the future and helping the community grow and learn.
Packt is searching for authors
like you
If you're interested in becoming an author for Packt, please visit author
s.packtpub.com and apply today. We have worked with thousands of

developers and tech professionals, just like you, to help them share
their insight with the global tech community. You can make a general
application, apply for a specific hot topic that we are recruiting an
author for, or submit your own idea.
Table of Contents
Title Page
Copyright and Credits
Learning JavaScript Data Structures and Algorithms  Third Edition
Dedication
Packt Upsell
Why subscribe?
PacktPub.com
Contributors
About the author
About the reviewers
Packt is searching for authors like you
Preface
Who this book is for
What this book covers
To get the most out of this book
Download the example code files
Conventions used
Get in touch
Reviews
1. JavaScript – A Quick Overview
JavaScript data structure and algorithms
Setting up the environment
The minimum setup to work with JavaScript
Using web servers
Node.js http-server
JavaScript basics
Variables
Scope variable
Operators
Truthy and falsy
Functions of the equals operators (== and ===)
Control structures
Conditional statements
Loops
Functions
Object-oriented programming in JavaScript
Debugging and tools
Debugging with VSCode
Summary
2. ECMAScript and TypeScript Overview
ECMAScript or JavaScript?
ES6, ES2015, ES7, ES2016, ES8, ES2017, and ES.Next
The compatibility table
Using Babel.js
ECMAScript 2015+ functionalities
let and const instead of var
Variables scope with let and const
Template literals
Arrow functions
Default parameter values for functions
Declaring the spread and rest operators
Enhanced object properties
Object-oriented programming with classes
Inheritance
Working with getters and setters
Exponentiation operator
Modules
Running ES2015 modules in the browser and with Node.js
Using native ES2015 imports in Node.js
Running ES2015 modules in the browser
ES2015+ backward compatibility
Introducing TypeScript
Type inference
Interfaces
Generics
Other TypeScript functionalities
TypeScript compile-time checking in JavaScript files
Summary
3. Arrays
Why should we use arrays?
Creating and initializing arrays
Accessing elements and iterating an array
Adding elements
Inserting an element at the end of the array
Using the push method
Inserting an element in the first position
Using the unshift method
Removing elements
Removing an element from the end of the array
Removing an element from the first position
Using the shift method
Adding and removing elements from a specific position
Two-dimensional and multi-dimensional arrays
Iterating the elements of two-dimensional arrays
Multi-dimensional arrays
References for JavaScript array methods
Joining multiple arrays
Iterator functions
Iterating using the every method
Iterating using the some method
Iterating using forEach
Using map and filter
Using the reduce method
ECMAScript 6 and new array functionalities
Iterating using the for...of loop
Using the @@iterator object
Array entries, keys, and values
Using the from method
Using the Array.of method
Using the fill method
Using the copyWithin method
Sorting elements
Custom sorting
Sorting strings
Searching
ECMAScript 2015 - the find and findIndex methods
ECMAScript 2016 - using the includes method
Outputting the array into a string
The TypedArray class
Arrays in TypeScript
Summary
4. Stacks
Creating a JavaScript data structure and algorithm library
The stack data structure
Creating an array-based Stack class
Pushing elements to the stack
Popping elements from the stack
Peeking the element from the top of the stack
Verifying whether the stack is empty
Clearing the elements of the stack
Using the Stack class
Creating a JavaScript object-based Stack class
Pushing elements to the stack
Verifying whether the stack is empty and its size
Popping elements from the stack
Peeking the top of the stack and clearing it
Creating the toString method
Protecting the internal elements of the data structure
The underscore naming convention
ES2015 classes with scoped symbols
ES2015 classes with WeakMap
ECMAScript class field proposal
Solving problems using stacks
Converting decimal numbers to binary
The base converter algorithm
Summary
5. Queues and Deques
The queue data structure
Creating the Queue class
Enqueuing elements to the queue
Dequeuing elements from the queue
Peeking the element from the front of the queue
Verifying whether the queue is empty and its size
Clearing the queue
Creating the toString method
Using the Queue class
The deque data structure
Creating the Deque class
Adding elements to the front of the deque
Using the Deque class
Solving problems using queues and deques
The circular queue – Hot Potato
Palindrome checker
JavaScript task queues
Summary
6. Linked Lists
The linked list data structure
Creating the LinkedList class
Pushing elements to the end of the linked list
Removing elements from the linked list from a specific positio
n
Looping through the list until we get to the desired position
Refactoring the remove method
Inserting an element at any position
The indexOf method: returning the position of an element
Removing an element from the linked list
The isEmpty, size, and getHead methods
The toString method
Doubly linked lists
Inserting a new element at any position
Removing elements from any position
Circular linked lists
Inserting a new element at any position
Removing elements from any position
Sorted linked lists
Inserting elements in order
Creating the StackLinkedList class
Summary
7. Sets
Structuring a dataset
Creating a Set class
The has(element) method
The add method
The delete and clear methods
The size method
The values method
Using the Set class
Set operations
Set union
Set intersection
Improving the intersection method
Set difference
Subset
ECMAScript 2015 – the Set class
ES2015 Set class operations
Simulating the union operation
Simulating the intersection operation
Simulating the difference operation
Using the spread operator
Multisets or bags
Summary
8. Dictionaries and Hashes
The dictionary data structure
Creating the Dictionary class
Verifying whether a key exists in the dictionary
Setting a key and value in the dictionary and the ValuePa
ir class
Removing a value from the dictionary
Retrieving a value from the dictionary
The keys, values, and valuePairs methods
Iterating each ValuePair of the dictionary with forEach
The clear, size, isEmpty, and toString methods
Using the Dictionary class
The hash table
Creating a HashTable class
Creating a hash function
Putting a key and a value in the hash table
Retrieving a value from the hash table
Removing a value from the hash table
Using the HashTable class
Hash table versus hash set
Handling collisions between hash tables
Separate chaining
The put method
The get method
The remove method
Linear probing
The put method
The get method
The remove method
Creating better hash functions
The ES2015 Map class
The ES2015 WeakMap and WeakSet classes
Summary
9. Recursion
Understanding recursion
Calculating the factorial of a number
Iterative factorial
Recursive factorial
The call stack
JavaScript limitation on the call stack size
The Fibonacci sequence
Iterative Fibonacci
Recursive Fibonacci
Fibonacci with memoization
Why use recursion? Is it faster?
Summary
10. Trees
The tree data structure
Tree terminology
The binary and binary search trees
Creating the Node and BinarySearchTree classes
Inserting a key into the BST
Tree traversal
In-order traversal
Pre-order traversal
Post-order traversal
Searching for values in a tree
Searching for minimum and maximum values
Searching for a specific value
Removing a node
Removing a leaf node
Removing a node with a left or right child
Removing a node with two children
Self-balancing trees
Adelson-Velskii and Landi’s tree (AVL tree)
Height of a node and the balancing factor
Balancing operations– AVL rotations
Left-left case: single rotation to the right
Right-right case: single rotation to the left
Left-right case: double rotation to the right
Right-left case – double rotation to the left
Inserting a node in the AVL tree
Removing a node from the AVL tree
Red-Black tree
Inserting a node in the Red-Black tree
Verifying the Red-Black tree properties after insertion
Red-Black tree rotations
Summary
11. Binary Heap and Heap Sort
The binary heap data structure
Creating the MinHeap class
Binary tree array representation
Inserting a value into the heap
The sift up operation
Finding the minimum or maximum value from the heap
Extracting the minimum or maximum value from the heap
The sift down operation (heapify)
Creating the MaxHeap class
The heap sort algorithm
Summary
12. Graphs
Graph terminology
Directed and undirected graphs
Representing a graph
The adjacency matrix
The adjacency list
The incidence matrix
Creating the Graph class
Graph traversals
Breadth-first search (BFS)
Finding the shortest paths using BFS
Further study on the shortest paths algorithms
Depth-first search (DFS)
Exploring the DFS algorithm
Topological sorting using DFS
Shortest path algorithms
Dijkstra's algorithm
The Floyd-Warshall algorithm
Minimum spanning tree (MST)
Prim's algorithm
Kruskal's algorithm
Summary
13. Sorting and Searching Algorithms
Sorting algorithms
The bubble sort
The improved bubble sort
The selection sort
The insertion sort
The merge sort
The quick sort
The partition process
The quick sort in action
The counting sort
The bucket sort
The radix sort
Searching algorithms
The sequential search
The binary search
The interpolation search
Shuffle algorithms
The Fisher-Yates shuffle
Summary
14. Algorithm Designs and Techniques
Divide and conquer
Binary search
Dynamic programming
The minimum coin change problem
The knapsack problem
The longest common subsequence
Matrix chain multiplication
Greedy algorithms
The min-coin change problem
The fractional knapsack problem
Backtracking algorithms
Rat in a Maze
Sudoku Solver
Introduction to functional programming
Functional versus imperative programming
ES2015+ and functional programming
The JavaScript functional toolbox – map, filter, and red
uce
JavaScript functional libraries and data structures
Summary
15. Algorithm Complexity
Big O notation
Understanding big O notation
O(1)
O(n)
O(n2)
Comparing complexities
Data structures
Graphs
Sorting Algorithms
Searching Algorithms
Introduction to the NP-completeness theory
Impossible problems and heuristic algorithms
Having fun with algorithms
Summary
Other Books You May Enjoy
Leave a review - let other readers know what you think
Preface
JavaScript is one of the most popular programming language
nowadays. It is known as the internet language due the fact that the
browser understands JavaScript natively, without installing any
plugins in it. JavaScript has grown so much that is no longer just a
frontend language; it is also present now on the server (NodeJS),
database (MongoDB), and mobile devices and is also used in
embedded and Internet of Things (IoT) devices.

Learning data structures is very important for any technology


professional. Working as a developer means you are able to solve
problems with the help of programming languages, and data
structures are an indispensable piece of the solutions we need to
create to solve these problems. Choosing a wrong data structure can
also have an impact on the performance of the program we are
writing. That is why, it's important to get to know different data
structures and how to apply them properly.

Algorithms are the state of art of computer science. There are so


many ways of solving the same problem, and some approaches are
better than the others. That is why, it's also very important to know
the most famous algorithms.
This book was written for beginners who want to learn data
structures and algorithms and also for those who are already familiar
with data structures and algorithms, but want to learn it using
JavaScript.

Happy coding!
Who this book is for
If you are a student of computer science or are at the start of your
technology career and want to explore JavaScript’s optimum ability,
this book is for you. If you are already familiar with programming, but
want to hone your skills on algorithms and data structures, this book
is also for you.

You just need a basic knowledge of JavaScript and programming


logic to start having fun with algorithms.
What this book covers
, JavaScript - A Quick Overview, covers the basics of
Chapter 1

JavaScript needed prior to learning data structures and algorithms. It


also covers the setup of the development environment needed for
this book.

, ECMAScript and TypeScript Overview, covers some new


Chapter 2

JavaScript functionalities introduced since 2015 and also covers the


basic functionalities of TypeScript, a JavaScript superset.

, Arrays, explains how to use the most basic and most used
Chapter 3

data structure, which are the arrays. This chapter demonstrates how
to declare, initialize, add, and remove elements from an array. It also
covers how to use native JavaScript Array methods.

, Stacks, introduces the stack data structure, demonstrating


Chapter 4

how to create a stack and add and remove elements. It also


demonstrates how to use stack to solve some computer science-
related problems.

, Queues and Deques, covers the queue data structure,


Chapter 5

demonstrating how to create a queue and add and remove its


elements. It covers the deque data structure, a special type of the
queue. It also demonstrates how to use queue to solve some
computer science-related problems and the major differences
between queues and stacks.

, Linked Lists, explains how to create the linked list data


Chapter 6

structure from scratch using objects and "pointer" concept. Besides


covering how to declare, create, add, and remove elements, it also
covers the various types of linked lists, such as the doubly linked list
and circular linked list.
, Sets, introduces the set data structure and how it can be
Chapter 7

used to store non-repeated elements. It also explains the different


types of set operations and how to implement and use them.

, Dictionaries and Hashes, explains the dictionary and hash


Chapter 8

data structures and the differences between them. This chapter


covers how to declare, create, and use both data structures. It also
explains how to handle collisions in hash and techniques for creating
better hash functions.

, Recursion, introduces the concept of recursion and


Chapter 9

demonstrates the differences between declarative and recursive


algorithms.

, Trees, covers the tree data structure, its terminology,


Chapter 10

focusing on Binary Search Tree data— its methods to search,


traverse, add, and remove nodes. It also introduces self-balancing
trees, such as the AVL and Red-Black trees.

, Binary Heap and Heap Sort, covers the min heap and max
Chapter 11

heap data structures, how to use the heap as a priority queue, and
discusses the famous heap sort algorithm.

, Graphs, introduces the amazing world of graphs and its


Chapter 12

application in real-world problems. This chapter covers the most


common graph terminology, the different way of representing a
graph, how to traverse graphs using the Breadth-First Search and
Depth-First Search algorithms and its applications.

, Sorting and Searching Algorithms, explores the most used


Chapter 13

sorting algorithms, such as the Bubble sort (and its improved


version), Selection sort, Insertion sort, Merge sort, and Quick sort. It
also covers the counting and radix sort, two distributed sorting
algorithms. It also covers how to search algorithms, such as the
sequential and binary search, and how to shuffle arrays.
, Algorithm Designs and Techniques, introduces some
Chapter 14

algorithm techniques and some of the most famous algorithms. It


also covers an introduction to functional programming in JavaScript.

, Algorithm Complexity, introduces the Big-O notation and its


Chapter 15

concepts along with a cheat sheet of the complexity of the algorithms


implemented in this book. It covers an introduction to NP-
Completeness problems and heuristic solutions. At last, it explains
how to take your algorithm knowledge to the next level.
To get the most out of this book
Although this book provides a brief introduction on JavaScript in its
first chapter, you will need a basic knowledge of JavaScript and
programming logic.

To test the code examples provided by this book, you will need a
code editor (such as Atom or Visual Studio Code) so that you can
read the code and also a browser (Chrome, Firefox, or Edge).

You can also test the examples online by accessing https://javascript-d


s-algorithms-book.firebaseapp.com/. Also, remember to open the developer

tools of the browser so that you can see what is being outputted in
the browser's console.
Download the example code
files
You can download the example code files for this book from your
account at www.packtpub.com. If you purchased this book elsewhere, you
can visit www.packtpub.com/support and register to have the files emailed
directly to you.

You can download the code files by following these steps:

1. Log in or register at www.packtpub.com.


2. Select the SUPPORT tab.
3. Click on Code Downloads & Errata.
4. Enter the name of the book in the Search box and follow the
onscreen instructions.

Once the file is downloaded, please make sure that you unzip or
extract the folder using the latest version of:

WinRAR/7-Zip for Windows


Zipeg/iZip/UnRarX for Mac
7-Zip/PeaZip for Linux

The code bundle for the book is also hosted on GitHub at https://githu
b.com/PacktPublishing/Learning-JavaScript-Data-Structures-and-Algorithms-Third-Editi
. In case there's an update to the code, it will be updated on the
on

existing GitHub repository.

We also have other code bundles from our rich catalog of books and
videos available at https://github.com/PacktPublishing/. Check them out!
Conventions used
There are a number of text conventions used throughout this book.

: Indicates code words in text, database table names, folder


CodeInText

names, filenames, file extensions, pathnames, dummy URLs, user


input, and Twitter handles. Here is an example: "Mount the
downloaded WebStorm-10*.dmg disk image file as another disk in your
system."

A block of code is set as follows:


class Stack {
constructor() {
this.items = []; // {1}
}
}

When we wish to draw your attention to a particular part of a code


block, the relevant lines or items are set in bold:
const stack = new Stack();
console.log(stack.isEmpty()); // outputs true

Any command-line input or output is written as follows:


npm install http-server -g

Bold: Indicates a new term, an important word, or words that you


see onscreen. For example, words in menus or dialog boxes appear
in the text like this. Here is an example: "Select System info from the
Administration panel."
Warnings or important notes appear like this.

Tips and tricks appear like this.


Get in touch
Feedback from our readers is always welcome.

General feedback: Email [email protected] and mention the book


title in the subject of your message. If you have questions about any
aspect of this book, please email us at [email protected].

Errata: Although we have taken every care to ensure the accuracy


of our content, mistakes do happen. If you have found a mistake in
this book, we would be grateful if you would report this to us. Please
visit www.packtpub.com/submit-errata, selecting your book, clicking on the
Errata Submission Form link, and entering the details.

Piracy: If you come across any illegal copies of our works in any
form on the Internet, we would be grateful if you would provide us
with the location address or website name. Please contact us at
[email protected] with a link to the material.

If you are interested in becoming an author: If there is a topic that


you have expertise in and you are interested in either writing or
contributing to a book, please visit authors.packtpub.com.
Reviews
Please leave a review. Once you have read and used this book, why
not leave a review on the site that you purchased it from? Potential
readers can then see and use your unbiased opinion to make
purchase decisions, we at Packt can understand what you think
about our products, and our authors can see your feedback on their
book. Thank you!

For more information about Packt, please visit packtpub.com.


JavaScript – A Quick Overview
JavaScript is a very powerful language. It is one of the most popular
languages in the world and is one of the most prominent languages
on the internet. For example, GitHub (the world's largest code host,
available at https://github.com) hosts over 400,000 JavaScript
repositories (the largest number of projects available is in JavaScript;
refer to http://githut.info). The number of projects in JavaScript and
GitHub grows every year.

JavaScript is not a language that can only be used in the frontend. It


can also be used in the backend, and Node.js is the technology
responsible for this. The number of Node Package Modules (npm),
https://www.npmjs.org, has also grown exponentially. JavaScript can also

be used for mobile development and is one of the most popular


frameworks in Apache Cordova (https://cordova.apache.org), which is a
mobile hybrid framework that allows developers to code using
HTML, CSS, and JavaScript, which allows you to build an app and
generate an APK file for Android and IPA file for iOS (Apple). And of
course, let's not forget about desktop applications. We can write
desktop applications compatible with Linux, Mac OS, and Windows
using a JavaScript framework called Electron (https://electron.atom.io).
JavaScript is also used in embedded and Internet of Things (IoT)
devices. As you can see, JavaScript is everywhere!

JavaScript is a must-have on your resume if you are or are


becoming a web developer.

In this chapter, you will learn the syntax and some necessary basic
functionalities of JavaScript so that we can start developing our own
data structures and algorithms. We will cover:

Setting up the environment and JavaScript basics


Controlling structures and functions
Object-oriented programming in JavaScript
Debugging and tools
JavaScript data structure and
algorithms
In this book, you will learn about the most-used data structures and
algorithms. Why should we use JavaScript to learn about data
structures and algorithms? We have already answered this question.
JavaScript is very popular and is appropriate for learning about data
structures because it is a functional language. Also, this can be a
very fun way of learning something new, as it is very different from
(and easier than) learning about data structures with a standard
language such as C, Java, or Python. And who said data structures
and algorithms were only made for languages such as C and Java?
You might need to implement some of these languages while
developing for the frontend as well.

Learning about data structures and algorithms is very important. The


first reason is that data structures and algorithms can solve the most
common problems efficiently. This will make a difference to the
quality of the source code you write in the future (including
performance; if you choose the incorrect data structure or algorithm,
depending on the scenario, you may have some performance
issues). Secondly, algorithms are studied in college together with the
introductory concepts of computer science. And finally, if you are
planning on getting a job with one of the greatest Information
Technology (IT) companies (such as Google, Amazon, Microsoft,
eBay, and so on) data structures, and algorithms are the subjects of
interview questions.

Let's get started!


Setting up the environment
One of the pros of the JavaScript language compared to other
languages is that you do not need to install or configure a
complicated environment to get started with it. Every computer has
the required environment already, even though the user may never
write a single line of source code. All we need is a browser!

To execute the examples in this book, it is recommended that you


have a modern browser installed such as Google Chrome or Firefox
(you can use the one you like the most), an editor of your preference
(such as Visual Studio Code), and a web server (XAMPP or any
other of your preference, but this step is optional). Chrome, Firefox,
VS Code, and XAMPP are available for Windows, Linux, and Mac
OS.
The minimum setup to work
with JavaScript
The simplest environment that you can use for JavaScript
development is a browser. The modern browsers (Chrome, Firefox,
Safari, and Edge) have a functionality called Developer Tools. To
access the DevTools in Chrome, you can click on the menu in the
upper-right corner, More Tools | Developer Tools:

When you open the DevTools, you will see the Console tab, and you
will be able to write all your JavaScript code in its command-line
area, as demonstrated in the following screenshot (to execute the
source code, you need to press Enter):
Exploring the Variety of Random
Documents with Different Content
The Project Gutenberg eBook of Glass
Manufacture
This ebook is for the use of anyone anywhere in the United
States and most other parts of the world at no cost and with
almost no restrictions whatsoever. You may copy it, give it away
or re-use it under the terms of the Project Gutenberg License
included with this ebook or online at www.gutenberg.org. If you
are not located in the United States, you will have to check the
laws of the country where you are located before using this
eBook.

Title: Glass Manufacture

Author: Walter Rosenhain

Release date: August 5, 2016 [eBook #52724]


Most recently updated: October 23, 2024

Language: English

Credits: Produced by Chris Curnow, Charlie Howard, and the


Online
Distributed Proofreading Team at http://www.pgdp.net
(This
file was produced from images generously made
available
by The Internet Archive)

*** START OF THE PROJECT GUTENBERG EBOOK GLASS


MANUFACTURE ***
The “Westminster” Series

GLASS MANUFACTURE

GLASS
MANUFACTURE

BY

WALTER ROSENHAIN B.A. B.C.E.


SUPERINTENDENT OF THE DEPARTMENT OF METALLURGY AND
METALLURGICAL CHEMISTRY AT THE NATIONAL
PHYSICAL LABORATORY
NEW YORK
D. VAN NOSTRAND COMPANY
23 MURRAY AND 27 WARREN STREETS
1908

BRADBURY, AGNEW, & CO. LD., PRINTERS,


LONDON AND TONBRIDGE.
PREFACE
The present volume on Glass Manufacture has been written
chiefly for the benefit of those who are users of glass, and therefore
makes no claim to be an adequate guide or help to those engaged in
glass manufacture itself. For this reason the account of
manufacturing processes has been kept as non-technical as possible;
no detailed drawings of plant or appliances have been given, and
only a few illustrative diagrams have been introduced for the
purpose of avoiding lengthy verbal descriptions. In describing each
process the object in view has been to give an insight into the
rationale of each step, so far as it is known or understood, and thus
to indicate the possibilities and limitations of the process and of its
resulting products rather than to provide a detailed guide to the
technique of the various operations. The practical aim of the book
has further been safeguarded by the fact that the processes
described in these pages are, with the exception of those described
as obsolete, to the author’s definite knowledge, in commercial use at
the present time. For this reason many apparently ingenious and
beautiful processes described in earlier books on glass have not
been mentioned here, since the author could find no trace of their
employment beyond the records of the various patents involved. On
the other hand the reader must be warned to bear in mind that the
peculiar conditions of the glass manufacturing industry have led to
the practice on the part of manufacturers of keeping their processes
as secret as possible, so that the task of the author who would give
an accurate account of the best modern processes used in any given
department of the industry is beset with great difficulties. The
author has endeavoured to steer the best course open to him under
these circumstances, and he would appeal to the paucity of glass
literature in the English language as evidence of the difficulty to
which he refers.
In addition to these difficulties, which arise largely from
considerations of a commercial nature, the writer of a book on glass
is further confronted with technical difficulties of no inconsiderable
order. As already indicated, the aim of the present author has been
to describe processes from the point of view of principles and
methods rather than as mere rule-of-thumb descriptions of
manufacturing manipulations, but in doing this he is met at every
turn by the fact that from the scientific side the greater part of the
field of glass manufacture is a “terra incognita.” In making this
statement the labours of many eminent scientific workers are by no
means forgotten, but the entire field is so large and beset with such
great experimental difficulties that even the labours of a list of
investigators that includes the names of Fraunhofer and Faraday,
Stokes, Hopkinson, Abbé and Schott, have resulted in little more
than an accumulation of empirical data which, while they have been
productive of great direct practical results, have left the science of
glass still in a very elementary condition. To take two examples in
illustration of this fact we may mention the question of the
connection between chemical composition and any of the physical
properties of glass, such as refraction and dispersion of light, and on
the more mechanical side the question why all processes, such as
rolling or moulding, which involve the contact of hot glass with metal
result in a roughening of the glass surface. The former question has
been studied by several of the investigators named above, Schott
and Abbé having particularly devoted an enormous amount of labour
and money to the study of the question with results which have
proved disappointing from the scientific point of view. By prolonged
experimenting and the employment of a costly system of trial and
error an important series of novel and useful glasses has been
produced by these workers, but no law by whose aid the optical
properties of a glass of given chemical composition could be
predicted has yet been discovered, and as a summary of the known
facts only the vaguest general principles are available for the
guidance of those who wish to produce glasses of definite
properties. The same applies in a similar degree to most of the other
properties of glass, with the exception, perhaps, of density and
thermal expansion; attempts to generalise from the known data of a
limited number of glasses generally meet with unqualified failure.
The conclusion which one is forced to admit is that the fundamental
principles underlying the nature and constitution of glasses have yet
to be discovered. A study of the other question mentioned above as
an example of the limitations of our knowledge leads to the same
conclusion; an almost endless succession of inventors have busied
themselves with devices for overcoming the roughening action of
rollers and moulds upon glass, but without any real success. A long
list of other examples of the same kind could be given, our
knowledge of the physical and chemical principles underlying many
of the phenomena met with in glass manufacture being deplorably
deficient. It will thus be seen that to write a truly scientific account
of glass manufacture is at the present time impossible, and the
reader is asked to bear this in mind if he should find the chemical or
physical explanations given in this book less frequent or less
adequate than could be desired.
Having dwelt somewhat emphatically on the limitations of our
present scientific knowledge as applied to glass manufacture, it is
perhaps scarcely necessary at the present time to emphasise the
fact that this state of affairs should act as the strongest incentive to
further investigation of the whole subject. The difficulty, however,
lies in the fact that such investigation can scarcely be carried on by
voluntary workers in ordinary laboratories, but must be undertaken
with the active help of glass manufacturers at their works. Glass is
essentially a substance that cannot be satisfactorily handled in small
quantities, particularly so far as all the phenomena connected with
its production and manipulation while hot are concerned; the
influences of containing vessels, of furnace gases and of rapid
cooling are all enormously exaggerated if ounces instead of
hundredweights or tons of glass are used for experimental purposes,
and these influences and others of the same nature vitally affect all
the results of small-scale laboratory operations. The progress of our
scientific knowledge of glass—and the consequent development of
the glass industry from its present state where rule-of-thumb and
“practical experience” still hold excessive sway—lies in the hands of
those concerned in the industry itself. It must be admitted that to
undertake such work involves the expenditure of much time and
money on the part of a manufacturer, while the field is so large and
the problems so complicated that any adequate return cannot be
promised for the immediate future; on the other hand the very size
of the field and the difficulty of the problems offers the promise of
the greatest ultimate reward; a really important scientific discovery
in connection with glass would be certain to bring in its train
industrial developments whose limits it is impossible to foresee. The
industrial success of the glass-works of Schott in Jena is often
quoted as a brilliant example of commercial success resulting from
purely scientific investigations in this actual field; an example of still
greater magnitude is furnished by the success of the aniline dye
works of Germany which are built up on purely scientific
achievements. The glass industry as a whole, supplying some of the
absolute necessaries of modern life, should be capable of offering
the greatest rewards to success, and the example of other industries
has shown that ultimate success is bound to reward properly-
conducted and perseverant scientific research. Nowhere is this more
urgently needed than in the whole field of glass manufacture.
The author is indebted to Mr. W. C. Hancock for valuable
assistance in the reading of proofs and various suggestions in
connection with the contents of this book.
TABLE OF CONTENTS
PAGE
Preface v

CHAPTER I.
THE PHYSICAL AND CHEMICAL PROPERTIES OF GLASS.

Definition of the term “Glass”—Amorphous


structure the common feature of all
vitreous bodies—Glass a congealed fluid—
Glasses not definite chemical compounds
but complex solutions—Range of chemical
composition available for glass-making—
Considerations governing chemical
composition—Influence of composition on
physical properties—Chemical stability of
glass—Permanence of glass surfaces—
Action of water, acids, and alkalies on
glass—Action of light on glass p. 1

CHAPTER II.
THE PHYSICAL PROPERTIES OF GLASS.

Mechanical properties: tensile strength, p. 18


crushing strength, elasticity, ductility, and
hardness—Thermal properties of glass:
thermal endurance, coefficient of
expansion, thermal conductivity—
Thermometer glass—Electrical properties
of glass—Transparency and colour of glass

CHAPTER III.
THE RAW MATERIALS OF GLASS MANUFACTURE.

General considerations—Chemical purity,


moisture, and physical condition,
constancy of quality—Sources of silica,
sand and sandstone—Felspar—Sources of
alkali: Soda ash (carbonate of soda), salt-
cake (sulphate of soda), pearl ash
(carbonate of potash)—Alkali nitrates—
Natural minerals containing alkalies—
Sources of other bases: Lime, chalk,
limestone, slaked lime—Gypsum (sulphate
of lime)—Barium compounds—Magnesia
and zinc—Lead oxide, red lead—
Aluminium, manganese, arsenic—Carbon
—Coke, charcoal, anthracite coal p. 35

CHAPTER IV.
CRUCIBLES AND FURNACES FOR THE FUSION OF GLASS.

Fire-clay and silica-brick—Manufacture of p. 54


glass-melting pots—Drying and first
heating of pots—Blocks for tank and other
furnaces—Uses of silica brick—Furnaces—
Coal-fired and gas-fired furnaces—Gas
producers—Regenerative furnaces,
principles and construction of Siemens’
furnaces—Recuperative furnaces—General
arrangements of modern tank furnaces—
Relative advantages of tank and pot
furnaces

CHAPTER V.
THE PROCESS OF FUSION.

Mixing of raw materials by hand and by


machinery—The charging operation—
Chemical reactions during melting of
carbonate mixtures, and of sulphate
mixtures—Influence of carbon on the
reactions—The fining process p. 73

CHAPTER VI.
PROCESSES USED IN THE WORKING OF GLASS.

Ladling, gathering, and casting—Limitations


of ladling—Ladling used for rolled glass,
gathering for blown glass—Rolling of glass
—Blowing processes and operations—Use
of moulds—Pressing—Moulding p. 84

CHAPTER VII.
BOTTLE GLASS.

Raw materials—Furnaces—Predominance of p. 95
tank furnaces—Process of blowing bottles
by hand—Gathering, marvering, blowing—
Use of fire-clay and metal moulds—
Formation of neck—Improved appliances,
moulds and tools—Manufacture of bottles
by machinery—The “Boucher” bottle-
blowing machine—Annealing of bottles—
Large bottles, carboys—Aids to the blower
—Sievert’s process—Large shallow
vessels, bath-tubs

CHAPTER VIII.
BLOWN AND PRESSED GLASS.

Raw materials—Bohemian glass and flint


glass—Gathering and blowing—Chair work
—Hand work—Production of tumblers by
hand—Application of coloured glass to
blown articles—Use of moulds as aids to
blowing—Roughening effect of moulds—
Fire-polishing by reheating—Use of
compressed air—Pressed glass—Moulds
and presses—Capacity and limitations of
pressing process p. 108

CHAPTER IX.
ROLLED OR PLATE GLASS.

Rolled plate glass—Furnaces—Raw materials p. 122


—Process of ladling—The rolling table—
Annealing—Cutting and sorting—Patterns
on rolled plate—“Figured” rolled plate—
Machine used for double-rolling—Polished
plate—Raw materials—Casting from
melting pots—Special casting pots—The
rolling table—Importance of flatness—
Annealing kilns—Grinding and polishing
processes—Machines used for grinding
and polishing—Method of holding the
glass—Abrasives and polishing materials—
Theory of the polishing process—Limiting
sizes of polished plate—Homogeneity of
polished plate—Uses of plate glass—Bent
polished plate—Mirrors—Bevelling,
process and machines—Wired plate glass,
rolled and polished—Difficulties and
limitations—Advantages of wired glass

CHAPTER X.
SHEET AND CROWN GLASS.

Comparison of sheet with polished plate—


Raw materials for sheet—Furnaces:
various forms of tank furnaces—Blowing
process—Gathering, forming the
gathering on blocks, forming the shoulder
of the cylinder, blowing the cylinder,
opening the end of the cylinder, detaching
cylinder from pipe—Cutting off the
“cap”—Splitting the cylinder—Flattening
and annealing—Cutting and sorting sheet-
glass—Defects of sheet-glass—Variations
of the process—Attempts to produce
“sheet” glass by rolling—Sievert’s process
—Direct drawing processes—The
American process for drawing cylinders—
Fourcault’s processes—Difficulties and
limitations—Crown glass—The blowing
process—Limitations p. 149
CHAPTER XI.
COLOURED GLASSES.

Definition of coloured glass—Physical causes


of colour—Colouring substances: copper,
silver, gold, carbon, tin, arsenic, sulphur,
chromium, uranium, fluorine, manganese,
iron, nickel, cobalt—Range and depths of
tints available—Intensely coloured glasses
—The process of “flashing”—Character of
“flashed” glass—Colours produced on
glass by painting: use of coloured “glazes”
as paints—Ancient stained glass and
modern glass—Technical uses of coloured
glass, photography, railway and marine
signals p. 178

CHAPTER XII.
OPTICAL GLASS.

Nature and properties of optical glass— p. 205


Homogeneity—Formation and removal of
striæ in solutions and in glass—
Transparency and colour—Absorption of
light in “decolourised” glasses—Refraction
and dispersion—Definitions—Refractive
index, dispersion, medium dispersion, the
quantity ν—Specification of optical
properties in terms of certain spectrum
lines—Table of typical optical glasses and
their optical constants—Crown and flint
glasses—Relation between refraction and
dispersion in the older and newer glasses
—Work of Abbé and Schott—Applications
of the new glasses—Non-proportionality
of dispersion in different types of glass—
Resulting imperfections of achromatism—
The relative partial dispersions of glasses
—Pairs of glasses giving perfect
achromatism not yet fully available—
Constants of Schott’s telescope crown and
flint—Narrow range of optical glasses,
consequent limitations in lens design—
Causes of these narrow limits—Possible
directions of extension—Chemical stability
of optical glasses—Double refraction in
optical glass arising from imperfect
annealing

CHAPTER XIII.
OPTICAL GLASS.

The manufacture of optical glass—Raw


materials—Mixing—Furnaces and crucibles
—Kilns for heating pots—Transfer of pots
from kiln to melting furnace—Introduction
of cullet and raw materials—The fining
process, difficulties and limitations—The
stirring process—The final cooling of the
glass—Rough sorting of the glass
fragments—Moulding and final annealing
of the moulded glass—Grinding and
polishing of plates and discs for
examination; smallness of yield obtained
—Difficulty of obtaining large blocks of
perfect glass p. 223
CHAPTER XIV.
MISCELLANEOUS PRODUCTS.

Glass tubing—Gathering and drawing of


ordinary tubes—Special varieties of tube—
Combustion tubes—Tubes of vitreous silica
—Varieties of vitreous silica—Transparent,
glass-like silica ware—Great cost of
production—Translucent “milky” silica
ware produced electrically—Great thermal
endurance of vitreous silica—
Sensitiveness to chemical action of all
basic substances at high temperatures—
Glass rod and fibre—Glass wool—Quartz
fibres—Glass beads—Artificial gems—Use
of very dense flint glass coloured to
imitate precious stones—Means of
distinguishing imitations—Precious stones
produced by artificial means—Chilled glass
—Great strength and fragility of chilled
glass—Rupert’s drops—Manufacture of
“tempered” glass by Siemens—De La
Bastie’s process—Massive glass, used for
house construction and paving blocks—
Water-glass (silicate of soda or potash),
manufacture in tank furnaces—Glass for
lighthouse lenses and searchlight mirrors
—Production by casting glass in iron
moulds—Sizes and types of lenses and
prisms produced p. 238

Appendix—Bibliography of Glass Manufacture p. 253


GLASS MANUFACTURE
CHAPTER I.

THE PHYSICAL AND CHEMICAL PROPERTIES


OF GLASS.

Although the term “glass” denotes a group of bodies which


possess in common a number of well-defined and characteristic
properties, it is difficult to frame a satisfactory definition of the term
itself. Thus while the property of transparency is at once suggested
by the word “glass,” there are a number of true glasses which are
not transparent, and some of which are not even translucent.
Hardness and brittleness also are properties more or less
characteristic of glasses, yet very wide differences are to be found in
this respect also, and bodies, both harder and more fragile than
glass, are to be found among minerals and metals. Perhaps the only
really universal property of glasses is that of possessing an
amorphous structure, so that vitreous bodies as a whole may be
regarded as typical of “structureless” solids. All bodies, whether
liquid or solid, must possess an ultimate structure, be it atomic,
molecular or electronic in character, but the structure here referred
to is not that of individual molecules but rather the manner of
grouping or aggregation of molecules.
In the great majority of mineral or inorganic bodies the
molecules in the solid phase are arranged in a definite grouping and
the body is said to have a crystalline structure; evidences of this
structure are generally visible to the unaided eye or can be revealed
by the microscope. Vitreous bodies on the other hand are
characterised by the entire absence of such a structure, and the
mechanical, optical and chemical behaviour of such bodies is
consistent only with the assumption that their molecules possess the
same arrangement, or rather lack of arrangement, that is found in
liquids.
The intimate resemblance between vitreous bodies and true
liquids is further emphasised when it is realised that true liquids can
in many instances pass into the vitreous state without undergoing
any critical change or exhibiting any discontinuity of behaviour, such
as is exhibited during the freezing of a crystalline body. In the latter
class of substances the passage from the liquid to the crystalline
state takes place at one definite temperature, and the change is
accompanied by a considerable evolution of heat, so that the cooling
of the mass is temporarily arrested. In the case of glasses, on the
other hand, the passage from the liquid to the apparently solid
condition is gradual and perfectly continuous, no evolution of heat or
retardation of cooling being observed even by the aid of the most
delicate instruments. We are thus justified in speaking of glasses as
“congealed liquids,” the process of congealing in this case involving
no change of structure, no re-arrangement of the molecules, but
simply implies a gradual stiffening of the liquid until the viscosity
becomes so great that the body behaves like a solid. It is, however,
just this power of becoming exceedingly stiff or viscous when cooled
down to ordinary temperatures that renders the existence of vitreous
bodies possible. All glasses are capable of undergoing the change to
the crystalline state when kept for a sufficient time at a suitable
temperature. The process which then takes place is known as
“devitrification,” and sometimes gives rise to serious manufacturing
difficulties.
Molten glass may be regarded as a mutual solution of a number
of chemical substances—usually silicates and borates. When cooled
in the ordinary way these bodies remain mutually dissolved, and
ordinary glass is thus simply a congealed solution. The dissolved
substances have, however, natural freezing-points of their own, and
if the molten mass be kept for any length of time at a temperature a
little below one of these freezing-points, that particular substance
will begin to solidify separately in the form of crystals. The facility
with which this will occur depends upon the properties of the
ingredients and upon the proportions in which they are present in
the glass. In some cases this devitrification sets in so readily that it
can scarcely be prevented at all, while in other cases the glass must
be maintained at the proper temperature for hours before
crystallisation can be induced to set in. In either of these cases,
provided that the glass is cooled sufficiently rapidly to prevent
crystallisation, the sequence of events during the subsequent cooling
of the mass is this: as the temperature falls further and further
below the natural freezing-point of one or other of the dissolved
bodies, the tendency of that body to crystallise out at first rapidly
increases; as the temperature falls, however, the resistance which
the liquid presents to the motion of the molecules increases at a still
greater rate, so that two opposing forces are at work, one of them
an increasing tendency towards crystallisation, the other a still more
rapidly increasing resistance to any change. There is thus for every
glass a certain critical range of temperature during which the
greatest tendency exists for the crystallising forces to overcome the
internal resistance; through this range the glass must be cooled at a
relatively rapid rate if devitrification is to be avoided; at lower
temperatures the crystallising forces require increasingly longer
periods of time to produce any sensible effect, until, as the ordinary
temperature is approached, the forces of internal resistance entirely
prevent all tendency to crystallisation.
The phenomena just described in reality constitute the natural
limit to the range of bodies which can be obtained in the vitreous
state: as we approach this limit the glass requires more and more
rapid cooling through the critical range of temperature, and is thus
more and more liable to devitrify during the manufacturing
processes, until finally the limit is set when no industrially feasible
rapidity of cooling suffices to retain the mass in the vitreous state.
While the range of bodies that can be obtained in the vitreous
state is very large, only a comparatively small number of substances
are ordinarily incorporated in industrial glasses. With the exception
of certain special glasses used for scientific purposes, such as the
construction of optical lenses, thermometers and vessels intended to
resist unusual treatment, all industrial glasses are of the nature of
mixed silicates of a few bases, viz., the alkalies, sodium and
potassium, the alkaline earths, calcium, magnesium, strontium, and
barium, the oxides of iron and aluminium (generally present in minor
quantities), and lead oxide. The manner in which these various
elements enter into combination and solution with one another has
been much investigated, and the more general conclusions have
been anticipated in what has been said above. It is abundantly
evident that glasses are not definite chemical compounds, but rather
solutions, in varying proportions, of a series of definite compounds in
one another. In many cases the actual constitution of industrial
glasses is so complex as, for the present at all events, to baffle
adequate chemical expression.
One of the factors that limit the range of possible compositions
of glasses has already been indicated, and two others must now be
discussed. For industrial purposes, the cost and rarity of the
ingredients becomes a vital bar at a certain stage; thus the use of
such elements as lithium, thallium, etc., is prohibitively costly. In
another direction the glass-maker is very effectively restrained by
the limitations of his furnaces as regards temperature. The presence
of excessive proportions of silica, lime, alumina, etc., tends to raise
the temperature required for the free fusion of the glass, and when
this temperature seriously exceeds 1600° C., the manufacture of the
glass in ordinary furnaces becomes impossible. Thus pure silica can
be converted into a glass possessing very valuable properties, but
the requisite temperature cannot be attained in regenerative gas-
fired furnaces such as are ordinarily used by glass manufacturers.
The production of this glass has accordingly been carried on upon a
small scale only by means of laboratory furnaces heated by oxy-
acetylene flames, while latterly a less perfect variety of silica glass-
ware has been produced on a large scale by the aid of electric
furnaces. Such methods are, however, obviously limited to very
special products commanding special prices.
A further limitation in the choice of chemical components is
placed upon the manufacturer by the actual chemical behaviour of
the glass both during manufacture and in use. As regards chemical
behaviour during manufacture, it must be borne in mind that,
although glasses are of the nature of solutions rather than of
compounds, yet these solutions tend towards a state of saturation;
thus a glass rich in silica and deficient in bases will readily dissolve
any basic materials with which it may come in contact, while, on the
other hand, a glass rich in bases and poor in acid constituents such
as silica, boric acid or alumina, will readily absorb acid bodies from
its surroundings. During the process of melting, glass is universally
contained in fire-clay vessels. These are chosen, as regards their
own chemical composition, so as to offer to the molten glass a few
of those materials in which the glass itself is deficient; yet a limit
arises in this respect also, since glasses very rich in bases, such as
the very dense lead and barium glass made for optical purposes,
rapidly attack any fire-clay with which they may come in contact.
The finished glass also betrays its chemical composition by its
chemical behaviour towards the atmospheric agents, such as
moisture and carbonic acid, with which it comes in contact; glasses
containing an excessive proportion of alkali, for example, are found
to be seriously hygroscopic and to undergo rapid decomposition,
especially in a damp atmosphere.
Within the limits set by these considerations, the glass
manufacturer chooses the chemical composition of his glass
according to the purpose for which it is intended; for most industrial
products the cheapest and most accessible raw materials that will
yield a glass of the requisite appearance are employed, while for
special purposes the dependence of physical properties upon
chemical composition is utilised, as far as possible, in order to attain
a glass specially suited to the particular requirements in question.
Thus the flint and barium glasses used for table and ornamental
ware derive from the dense and strongly refracting oxides of lead
and barium their properties of brilliancy and weight. The fusibility
and softness imparted to the glass by the presence of these bases
further adapts it to its purpose by facilitating the complicated
manipulations to which the glass must be subjected in the
manufacturing processes.
Taking our next example at almost the opposite extreme, the
hardest “combustion tubing,” which is intended to resist a red heat
without appreciable softening, is manufactured by reducing the basic
contents of the glass to the lowest possible degree, especially
minimising the alkali content, and using the most refractory bases
available, such as lime, magnesia, and alumina in the highest
possible proportions. Such glass is, of course, difficult to melt, and
special furnaces are required for its production, but on the other
hand this material meets requirements which ordinary soda-lime or
flint glass tubing could never approach. Another instance of these
refractory glasses is to be found in the Jena special thermometer
glasses and in the French (Tonnelot) “Verre dur”; the best of these
glasses show little or no plasticity at temperatures approaching 500°
C., and have thus rendered possible a considerable extension of the
range of the mercury thermometer. Further modification of chemical
composition has resulted in the production of glasses which are far
less subject to those gradual changes which occur in ordinary glass
when used for the manufacture of thermometers—changes which
vitiated the accuracy of most early thermometers. A still more
extensive adaptation of chemical composition to the attainment of
desired physical properties has been reached primarily as a result of
the labours of Schott and Abbé, in the case of optical glasses. The
work of these men, and the developments which have followed from
it, both at the works founded by them at Jena and elsewhere, have
so profoundly modified our knowledge of the range of possibilities
embraced by the class of vitreous bodies, that it is not at all easy at
the present time to realise the former narrow and restricted meaning
of the term “glass.” The subject of the dependence of the optical
properties of glass upon chemical composition will be referred to in
detail in Chapter XII. on “Optical Glass,” but the outline of the
influence of composition on properties here given could not be
closed without some reference to this pioneer work of the German
investigators.
The chemical behaviour of glass surfaces, to which we have
already referred, is of the utmost importance to all users of glass.
The relatively neutral chemical behaviour of glass is, in fact, one of
its most useful properties, and, next to its transparency, most
frequently the governing factor in its employment for various
purposes. Thus the entire use of glass for table-ware depends
primarily upon the fact that it does not appreciably affect the
composition and flavour of edible solids or liquids with which it is
brought into contact—a property which is only very partially shared
even by the noble metals. Again, the use of glass windows in places
exposed to the weather would not be feasible if window-glass were
appreciably attacked by the action of water or of the gases of the
atmosphere. For these general purposes, it is true, most ordinary
glasses are adequately resistant, but this degree of perfection in this
respect is only the outcome of the centuries of experience which the
practical glass-maker has behind him in the manufacture and
behaviour of such glass. When, however, a higher degree of
chemical resistance is required for special purposes, as for instance
when glass is called upon to resist exposure to hot, damp climates,
or is intended to contain corrosive liquids, the rules which are an
adequate guide to the glass-maker in meeting ordinary requirements
are no longer sufficient, particularly when the glass is expected to
meet other stringent requirements as well. It has, in fact, frequently
happened that a glass-maker, in striving to improve the colour or
quality of his glass, as regards freedom from defects, brilliancy of
surface, etc., has spoilt the chemical durability of his products. The
reason lies in the fact, long known in general terms, that an
increased alkali content reduces the chemical resistance of glass,
while at the same time such an increase of alkali is the readiest
means whereby the glass-maker can improve his glass in other
respects by making it more fusible and easier to work in every way.
This subject of the chemical stability of glass surfaces attracted
much attention during the later part of last century, and careful
investigations on the subject were carried out, particularly at the
German Reichsanstalt (Imperial Physical Laboratory) at
Charlottenburg. Here also the labours of Schott and Abbé proved
helpful, until at the present time such glass as that used by the Jena
firm in the production of laboratory ware, and certain other special
glasses of that kind, are fitted to meet the most stringent
requirements.
Leaving aside the inferior glasses, containing, generally, more
than 15 per cent. of alkali, the behaviour of glass surfaces to the
principal chemical agents may be summed up in the following
statements. Pure water attacks all glass to a greater or lesser extent;
in the best glasses the prolonged action of cold water merely
extracts a minute trace of alkalies, but in less perfect kinds the
extraction of alkali is considerable on prolonged exposure even in
the cold, and becomes rapidly more serious if the temperature is
raised. Superheated water, i.e., water under steam pressure,
becomes an active corroding agent, and the best glasses can only
resist its action for a limited time. For the gauge-glass tubes of
steam boilers working at the high pressures, which are customary at
the present time, specially durable glasses are required and can be
obtained, although many of the gauge-tubes ordinarily sold are quite
unfit for the purpose, both from the present point of view and from
that of strength and “thermal endurance.”
In certain classes of glass, the action of water, especially when
hot, is not entirely confined to the surface, some water penetrating
into the mass of the glass to an appreciable depth. The exact
mechanism of this action is not known, but the writer inclines to the
view that it arises from a partial hydration of some of the silica or
silicates present in the glass. If such glasses be dried in the ordinary
way and subsequently heated, the surface will be riddled with
minute cracks, some glass may even flake off, and the whole surface
will be dulled. As such penetrating action sometimes takes place—in
the poorer kinds of glass—by the action of atmospheric moisture
Welcome to our website – the ideal destination for book lovers and
knowledge seekers. With a mission to inspire endlessly, we offer a
vast collection of books, ranging from classic literary works to
specialized publications, self-development books, and children's
literature. Each book is a new journey of discovery, expanding
knowledge and enriching the soul of the reade

Our website is not just a platform for buying books, but a bridge
connecting readers to the timeless values of culture and wisdom. With
an elegant, user-friendly interface and an intelligent search system,
we are committed to providing a quick and convenient shopping
experience. Additionally, our special promotions and home delivery
services ensure that you save time and fully enjoy the joy of reading.

Let us accompany you on the journey of exploring knowledge and


personal growth!

ebooknice.com

You might also like