-
Data Manipulation Language (DML) statements Allow you to modify the contents of tables. There are three DML statements:
-
INSERT Allows you to add rows to a table.
-
UPDATE Allows you to change a row.
-
DELETE Allows you to remove rows.
-
Data Manipulation Language (DML) statements ?
PMA01:53
What Is a Relational Database?
PMA01:52
The basic concepts of a relational database are fairly easy to
understand. A relational database is a collection of
related information that has been organized into structures known as tables. Each table contains rows
that are further organized into columns. These tables are
stored in the database in structures known as schemas,
which are areas where database users may store their tables. Each user may also
choose to grant permissions to other users to access their tables.
MySQL Subqueries?
PMA05:07
You can use the result of a query like you use a list of values
with the IN operator to filter a query based on the result of another
query. The subquery appears in parentheses after the IN keyword.
The following query fetches all columns from the products
table, but only for those product codes that were part of order number 1:
mysql> SELECT * -> FROM products -> WHERE product_code IN ( -> SELECT product_code -> FROM order_lines -> WHERE order_id = 1 -> ); +--------------+---------------+--------+--------+ | product_code | name | weight | price | +--------------+---------------+--------+--------+ | MINI | Small product | 1.50 | 5.99 | | MAXI | Large product | 8.00 | 15.99 | +--------------+---------------+--------+--------+ 2 rows in set (0.00 sec)
MySQL Triggers
PMA05:05
To create a new trigger, use the CREATE TRIGGER
statement. You must give the trigger a unique name and then provide the timing,
action, and table that will cause the trigger to fire. For example, to create a
trigger that will fire every time a row is deleted from the products table, you
would construct a trigger as follows:
CREATE TRIGGER trigger_name BEFORE DELETE ON products FOR EACH ROW BEGIN ... END
The timing for a trigger can be BEFORE or
AFTER, indicating whether the trigger code should be executed
immediately before or immediately after the SQL statement that causes the
trigger to fire.
The keywords FOR EACH ROW are part of the CREATE
TRIGGER syntax and are required in every trigger.
what is Triggers?
PMA05:04
A trigger is a stored database object that contains a series of
SQL commands, set to activate automatically when certain events take place.
Each trigger is associated with a table. You can create a
trigger that will fire when an INSERT, UPDATE, or
DELETE takes place on the named table.
Locating commands?
PMA04:58
$ echo $PATH
/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/chris/bin
especially if the command resides in a directory with a long name.
The better way is to have commands stored in well-known directories,
and then add those directories to your shell's PATH environment variable.
/bin:/usr/bin:/usr/local/bin:/usr/bin/X11:/usr/X11R6/bin:/home/chris/bin
especially if the command resides in a directory with a long name.
The better way is to have commands stored in well-known directories,
and then add those directories to your shell's PATH environment variable.
Common Linux Features?
PMA04:54
-
Multiuser — Not only can you have many user accounts available on a Linux system, you can also have multiple users logged in and working on the system at the same time. Users can have their own environments arranged the way they want: their own home directory for storing files and their own desktop interface (with icons, menus, and applications arranged to suit them). User accounts can be password-protected, so that users can control who has access to their applications and data.
-
Multitasking — In Linux, it is possible to have many programs running at the same time, which means that not only can you have many programs going at once, but that the Linux operating system can itself have programs running in the background. Many of these system processes make it possible for Linux to work as a server, with these background processes listening to the network for requests to log in to your system, view a Web page, print a document, or copy a file. These background processes are referred to as daemons.
-
Graphical User Interface (X Window System) — The powerful framework for working with graphical applications in Linux is referred to as the X Window System (or simply X). X handles the functions of opening X-based graphical user interface (GUI) applications and displaying them on an X server process (the process that manages your screen, mouse, and keyboard).On top of X, you use an X-based desktop environment to provide a desktop metaphor and window manager to provide the look-and-feel of your GUI (icons, window frames, menus, and colors, or a combination of those items called themes). There are several desktop environments and several desktop managers to choose from. (Red Hat provides a few desktop managers, but focuses on GNOME and KDE desktop environments.)
-
Hardware support — You can configure support for almost every type of hardware that can be connected to a computer. There is support for floppy disk drives, CD-ROMs, removable disks (such as DVDs and Zip drives), sound cards, tape devices, video cards, and most anything else you can think of.
-
Networking connectivity — To connect your Linux system to a network, Linux offers support for a variety of local area network (LAN) boards, modems, and serial devices. In addition to LAN protocols, such as Ethernet (both wired and wireless), all the most popular upper-level networking protocols can be built-in. The most popular of these protocols is TCP/IP (used to connect to the Internet). Other protocols, such as IPX (for Novell networks) and X.25 (a packet-switching network type that is popular in Europe), are also available.
-
Network servers — Providing networking services to the client computers on the LAN or to the entire Internet is what Linux does best. A variety of software packages are available that enable you to use Linux as a print server, file server, FTP server, mail server, Web server, news server, or workgroup (DHCP or NIS) server.
-
Application support — Because of compatibility with POSIX and several different application programming interfaces (APIs), a wide range of freeware and shareware software is available for Linux. Most GNU software from the Free Software Foundation will run in Linux (although some may take a bit of tweaking).
-
What Is an Operating System?
PMA04:53
An operating system is made up of software
instructions that lie between the computer hardware (disks, memory, ports, and
so on) and the application programs (word processors, Web browsers,
spreadsheets, and so on). At the center is the kernel, which
provides the most basic computing functions (managing system memory, sharing the
processor, opening and closing devices, and so on). Besides the kernel, an
operating system provides other basic services needed to operate the computer,
including:
-
File systems — The file system provides the structure in which information is stored on the computer. Information is stored in files, primarily on hard disks inside the computer. Files are organized within a hierarchy of directories. The Linux file system holds the data files that you save, the programs you run, and the configuration files that set up the system.
-
Device drivers — These provide the interfaces to each of the hardware devices connected to your computer. A device driver enables a program to write to a device without needing to know details about how each piece of hardware is implemented. The program opens a device, sends and receives data, and closes a device.
-
User interfaces — An operating system needs to provide a way for users to run programs and access the file system. Linux has both graphical and text-based user interfaces. GNOME and KDE provide graphical user interfaces, whereas shell command interpreters (such as bash) run programs by typing commands and options.
-
System services — An operating system provides system services, many of which can be started automatically when the computer boots. In Linux, system services can include processes that mount file systems, start your network, and run scheduled tasks. In Linux, many services run continuously, enabling users to access printers, Web pages, files, databases, and other computing assets over a network.
What is the difference between internal and external commands?
PMA04:21
Internal commands are commands that are already loaded in the system.
They can be executed any time and are independent
They can be executed any time and are independent
What is GUI?
PMA04:19
Graphical User Interface, makes use of images and icons that users click
and manipulate as a way of communicating with the computer.
What is BASH?
PMA04:17
BASH is short for Bourne Again SHell. It was written by Steve Bourne as a
replacement to the original Bourne Shell (represented by /bin/sh).
What is LILO?
PMA04:16
This boot loader has been replaced by GRUB by and removed from the distribution.
LILO is a boot loader for Linux. It is used mainly to load the Linux operating
system into main memory so that it can begin its operations.
LILO is a boot loader for Linux. It is used mainly to load the Linux operating
system into main memory so that it can begin its operations.
most important in organically ranking a site?
PMA03:30
domain trust, inbound links/anchor
text, and properly formatted title tags are a good start.
text, and properly formatted title tags are a good start.
What do you think of using XML sitemaps?
PMA03:27
They are an additional tool to help the search engines
when they crawl a site. There is no requirement for any sitemap and your
pages will get indexed without them if you pay close attention to
navigation within your site.
when they crawl a site. There is no requirement for any sitemap and your
pages will get indexed without them if you pay close attention to
navigation within your site.
What SEO tools do you use?
PMA03:25
Keyword analysis tools, keyword density tools, index checking,
backlink checking, wordprocessor to check spelling and grammar, HTML
validation
backlink checking, wordprocessor to check spelling and grammar, HTML
validation
What do you mean by keyword stemming?
PMA03:10
Keyword stemming is a useful tool for web pages and search engine optimization.
The process of keyword stemming involves taking a basic but popular keyword pertaining
to a particular website and adding a prefix, suffix, or pluralization to make the
keyword into a new word.
The process of keyword stemming involves taking a basic but popular keyword pertaining
to a particular website and adding a prefix, suffix, or pluralization to make the
keyword into a new word.
keyword proximity?
PMA03:09
The proximity of the keywords or keywords included in a phrase in
relation to each other and one another is of great importance and is the
basis of using the appropriate combination of the words in the page
titles,headers,paragraphs and page content.
relation to each other and one another is of great importance and is the
basis of using the appropriate combination of the words in the page
titles,headers,paragraphs and page content.
What Is a Sitemap?
PMA02:58
A Sitemap is especially useful for sites that feature images that may be
hard to find by Googlebot or contain pages that aren’t linked or have
few included links. Sites that contain compelling information or content
can also benefit by the creation of a Sitemap.
Who is Matt Cutts?
PMA02:56
Matt Cutts works for the Search Quality group in Google, specializing in search engine optimization
issues. He is well known in the SEO community for enforcing the Google
Webmaster Guidelines and cracking down on link spam. Cutts also advises
the public on how to get better website visibility in Google.
what are meta tags?
PMA02:52
meta tags are labeled as meta keyword tags and meta descriptions tags.
These tags are invisible to the user and are used to supply data or
directions to the search engines in order to access information.
how get a list of all pages indexed by google?
PMA02:27
You can do site:example.com searches with results per page, but if you
try to do so with a script, then you will be stopped after just a few requests.
try to do so with a script, then you will be stopped after just a few requests.
Security issue for sitemap SEO?
PMA02:22
They typically name their sitemap something like sitemapRXTNAP.xml and submit it to Google using webmaster tools, rather than listing it in robots.txt
how execute different code depending on the number and type of arguments passed to a method?
PMA02:06
PHP doesn't support method polymorphism as a built-in feature.
However, you can emulate it using various type-checking functions. The following
combine( ) function uses is_numeric(),
is_string(), is_array(), and is_bool():
// combine() adds numbers, concatenates strings, merges arrays, // and ANDs bitwise and boolean arguments function combine($a, $b) { if (is_numeric($a) && is_numeric($b)) { return $a + $b; } if (is_string($a) && is_string($b)) { return "$a$b"; } if (is_array($a) && is_array($b)) { return array_merge($a, $b); } if (is_bool($a) && is_bool($b)) { return $a & $b; } return false; }
exchange the values in two variables without using additional variables for storage?
PMA01:59
To swap $a and $b:
list($a,$b) = array($b,$a);
how associate multiple elements with a single key?
PMA00:26
Store the multiple elements in an array:
$fruits = array('red' => array('strawberry','apple'), 'yellow' => array('banana'));
Or, use an object:
while ($obj = mysql_fetch_object($r)) { $fruits[ ] = $obj; }
Php get_meta_tags-Extracts all meta tag content attributes
PMA00:10
get_meta_tags — Extracts all meta tag content attributes from a file and returns an array
<?php// Assuming the above tags are at www.example.com$tags = get_meta_tags('http://www.example.com/');
// Notice how the keys are all lowercase now, and
// how . was replaced by _ in the key.echo $tags['author']; // nameecho $tags['keywords']; // php documentationecho $tags['description']; // a php manualecho $tags['geo_position']; // 49.33;-86.59?>
PHP Redirect - Redirect Script?
PMA00:07
PHP Redirect Function
header('Location: destination.php'); exit();
ou need the Location:
part so the browser knows what header it's
receiving. Also, don't forget to
do anexit()
ordie()
right after the redirect.
Finding the Position of a Value in an Array
PMA05:54
Use array_search( ) . It
returns the key of the found value. If the value is not in the array, it returns
false:
$position = array_search($value, $array); if ($position !== false) { // the element in position
//$position has $value as its
//value in array $array }
Use in_array( ) to find if an
array contains a value; use array_search( ) to discover where that value
is located. However, because array_search( ) gracefully handles searches in which the value isn't
found, it's better to use array_search( ) instead of in_array( ).
The speed difference is minute, and the extra information is potentially
useful:
$food = 'cauliflower'; $position = array_search($food, $favorite_foods);
if ($position !== false)
{
echo "My #$position favorite food is $food";
}
else {
echo "Blech! I hate $food!";
}
Use the !== check against false because if your
string is found in the array at position 0, the if evaluates
to a logical false, which isn't what is meant or wanted.
If a value is in the array multiple times, array_search(
) is only guaranteed to return one of the instances, not the first
instance.
Turning an Array into a String
PMA05:52
convert it into a formatted string.
// make a comma delimited list $string = join(',', $array);
Or loop yourself:
$string = ''; foreach ($array as $key => $value) { $string .= ",$value"; } $string = substr($string, 1); // remove leading ","
If you can use join( ), do; it's faster than any
PHP-based loop. However, join( ) isn't very flexible. First, it places a
delimiter only between elements, not around them. To wrap elements inside HTML
bold tags and separate them with commas, do this:
$left = '<b>';
$right = '</b>';
$html = $left . join("$right,$left", $html) . $right;
Second, join( ) doesn't allow you to discriminate
against values. If you want to include a subset of entries, you need to loop
yourself:
$string = '';
foreach ($fields as $key => $value) {
// don't include password
if ('password' != $key) {
$string .= ",<b>$value</b>";
}
}
$string = substr($string, 1); // remove leading ","Setting Environment Variables
PMA05:50
Setting environment variables in your server configuration
on a host-by-host basis allows you to configure virtual hosts differently.
on a host-by-host basis allows you to configure virtual hosts differently.
<?php putenv('ORACLE_SID=ORACLE'); // configure oci extension ?>
Adjusting behavior based on an environment variable
<?php $version = $_SERVER['SITE_VERSION']; // redirect to http://guest.example.com,
//if user fails to sign in correctly if ('members' == $version) { if (!authenticate_user($_POST['username'], $_POST['password'])) { header('Location: http://guest.example.com/'); exit; } } include_once "${version}_header"; // load custom header
http://www.php.net/putenv; information on setting environment variables in Apache at
Extracting Substrings
PMA05:47
You want to
extract part of a string, starting at a particular place in the string. For
example, you want the first eight characters of a username entered into a
form.
Extracting a substring with substr(
)
<?php $substring = substr($string,$start,$length); $username = substr($_GET['username'],0,8); ?>
If $start and $length are positive, substr( ) returns $length characters in the string, starting at $start.
If $start is bigger than the length of the string,
substr( ) returns false..
Setting Default Values for Function Parameters
PMA05:45
Assign the default value to the parameters inside the function
prototype:
function wrap_html_tag($string, $tag = 'b') { return "<$tag>$string</$tag>"; }
The example in the Solution sets the default tag value to
b, for bold. For example:
$string = 'I am some HTML';
wrap_html_tag($string);
returns:
<b>I am some HTML</b>
This example:
wrap_html_tag($string, 'i');
returns:
<i>I am some HTML</i>
There are two important things to remember when assigning
default values. First, all parameters with default values must appear after
parameters without defaults. Otherwise, PHP can't tell which parameters are
omitted and should take the default value and which arguments are overriding the
default. So wrap_html_tag( ) can't be defined
as:
function wrap_html_tag($tag = 'i', $string)
If you do this and pass wrap_html_tag( ) only a single
argument, PHP assigns the value to $tag and issues a warning
complaining of a missing second argument.
Second, the assigned value must be a constant, such as a string
or a number. It can't be a variable. Again,
using wrap_html_tag( ), such
as our example, you can't do this:
$my_favorite_html_tag = 'i';
function wrap_html_tag($string, $tag = $my_favorite_html_tag) {
...
}
If you want to assign a default of nothing, one solution is to
assign the empty string to your parameter:
function wrap_html_tag($string, $tag = '') {
if (empty($tag)) return $string;
return "<$tag>$string</$tag>";
}
This function returns the original string, if no value is
passed in for the $tag. Or if a (nonempty) tag is passed in, it returns
the string wrapped inside of tags.
Depending on circumstances, another option for the
$tag default value is either 0 or NULL. In
wrap_html_tag( ), you don't want to allow an empty-valued tag. However,
in some cases, the empty string can be an acceptable option. For instance, join( ) is often called on the empty string,
after calling file( ), to place a file into a
string. Also, as the following code shows, you can use a default message if no
argument is provided but an empty message if the empty string is passed:
function pc_log_db_error($message = NULL) {
if (is_null($message)) {
$message = 'Couldn't connect to DB';
}
error_log("[DB] [$message]");
}CuteNews right
PMA02:53
Additional X-Field, ability to see the first posts while adding and
editing,
PHP-code error protection while news output, error logging at backend.
A notable feature of the CuteNews engine is that it doesn't use MySQL to store news,
comments, user profiles, or any other data.
The CuteNews engine can be installed on practically any web server.
CuteNews allows for different types of users with different permission levels: Administrator, Editor, Journalist, Commenter. Each of these types of users has access to different features on a
CuteNews-driven website.
You don't have to worry about creating news items: CuteNews does everything automatically. It is also capable of archiving old news items and activating postponed ones on its own.
Download Cute News 1.5.2 zip (570 Kb)
PHP-code error protection while news output, error logging at backend.
A notable feature of the CuteNews engine is that it doesn't use MySQL to store news,
comments, user profiles, or any other data.
The CuteNews engine can be installed on practically any web server.
CuteNews allows for different types of users with different permission levels: Administrator, Editor, Journalist, Commenter. Each of these types of users has access to different features on a
CuteNews-driven website.
You don't have to worry about creating news items: CuteNews does everything automatically. It is also capable of archiving old news items and activating postponed ones on its own.
Download Cute News 1.5.2 zip (570 Kb)
Staying Private on the Facebook
PMA02:46
Facebook
is a personal vault that can contain photos of your firstborn, plans to
bring down your government and, occasionally, a record of your
indiscretions.
Facebook insists it is up to you to decide how much you want others to
see. And that is true, to some extent. But you cannot entirely opt out
of Facebook searches. Facebook, however, does let you fine-tune who can
see your “likes” and pictures, and, to a lesser extent, how much of
yourself to expose to marketers.
The latest of its frequent changes to the site’s privacy settings was
made in December. Facebook is nudging each of its billion subscribers to
review them.
Apple took home 72% of all handset profits last quarter
PMA02:44
- Apple took home 72% of the profits with only 21.7% of unit sales (up from 15.4% in Q3).
- Samsung's 29% of the profits came from 28.9% of unit sales (down from 32.3% in Q3).
- 43 cents of every dollar spent in the world on a cellphone in Q4 ended up in Apple's coffers.
- Samsung got 36 cents. Nokia got 7 cents. All the rest got less than 5.
- For 2013, Walkley predicts that Apple and Samsung will split 103% of the profits, 69/34.
4G may lead to bigger smartphone bills
PMA02:42
Thinking about upgrading to a 4G phone? Prepare to pay more. Before you know it, those 2-gigabyte data caps your carrier put in place just aren't going to cut it.
The average American will use 6.2 GB of data on their mobile devices each month in 2017, according to the latest annual Visual Networking Index released by Cisco (CSCO, Fortune 500). To put that into context, Americans used just 752 MB Americans on average last year.If data plans stay the same five years down the road, the average user's smartphone bill could grow by $40 a month.
The wide-spread roll-out of 4G, the lightning-fast wireless networks that all four of the major carriers are in the process of deploying across the country, is expected to be the main culprit. 4G is capable of speeds comparable to your home broadband service, and it's roughly 10 times faster than 3G. By 2017, Cisco predicts that the average smartphone connection speed will grow more than three-fold.
JavaScript Interview Questions
PMA01:56
JavaScript Interview Questions
What is the difference between == and === ?
The == checks for value equality, but === checks for both type and value.
difference between innerHTML and append() in JavaScript?
InnerHTML is not standard, and its a String. The DOM is not, and although innerHTML is faster and less verbose, its better to use the DOM methods like appendChild(), firstChild.nodeValue, etc to alter innerHTML content.
break and continue statements?
Continue statement continues the current loop (if label not specified) in a new iteration whereas break statement exits the current loop.
Javascript closures?
A closure takes place when a function creates an environment that binds local variables to it in such a way that they are kept alive after the function has returned. A closure is a special kind of object that combines two things: a function, and any local variables that were in-scope at the time that the closure was created.
What is Strict Mode in JavaScript?
Strict Mode has been introduced as part of ECMAScript 5 and introduces new, restricted variant of JavaScript which has following aims:
- Throws errors for actions that are rather silly but previously didn’t throw an error
- Throws errors for potentially unsafe actions
- Disables functions that are poorly thought out
- Potentially code in strict mode could run faster by eliminating mistakes that would make it difficult for JavaScript engines to perform optimizations
Is javascript case sensitive?
Yes javascript is case sensitive.
isNaN function?
Return true if the argument is not a number.
GET and POST in HTML forms?
GETmethod: Parameters are passed in the querystring. Maximum amount of data that can be sent via the GET method is limited to about 2kb.
POSTmethod: Parameters are passed in the request body. There is no limit to the amount of data that can be transferred using POST. However, there are limits on the maximum amount of data that can be transferred in one name/value pair.
Differentiate between “var a=5” and “a =5” ?
difference is between the two is that one variable is local and the other is global.
• String
• Boolean
• Function
• Object
• Null
• Undefined
Examples are isNaN , Number, new Array().
How to set the cursor to wait ?
document.body.style.cursor = 'wait';
//do something interesting and time consuming
document.body.style.cursor = 'auto';
//do something interesting and time consuming
document.body.style.cursor = 'auto';
What's Prototypes for JavaScript?
Objects have "prototypes" from which they may inherit fields and functions.
a checkbox using Javascript?
var checked = window.document.getElementById("thmyCheckBox").checked;
What does "5"+2+4 evaluate to?
Since 5 is a string, everything is a string, so the result is 524.
How to create arrays in JavaScript?
declare an array like this
var scripts = new Array();
We can add elements to this array like this
scripts[0] = "A";
scripts[1] = "B";
scripts[2] = "C";
scripts[3] = "D";
var scripts = new Array();
We can add elements to this array like this
scripts[0] = "A";
scripts[1] = "B";
scripts[2] = "C";
scripts[3] = "D";
isNaN function?
Return true if the argument is not a number.
GET and POST in HTML forms?
GETmethod: Parameters are passed in the querystring. Maximum amount of data that can be sent via the GET method is limited to about 2kb.
POSTmethod: Parameters are passed in the request body. There is no limit to the amount of data that can be transferred using POST. However, there are limits on the maximum amount of data that can be transferred in one name/value pair.
Differentiate between “var a=5” and “a =5” ?
difference is between the two is that one variable is local and the other is global.
How to get value from a textbox?
document.getElementById('txtbox1').value;
• NumberWhat are global variables?
Global variables are available throughout your code: That is, the variables have no scope. Local variables scope, on the other hand, is restricted to where it is declared (like within a function). The var keyword is used to declare a local variable or object, while omitting the var keyword creates a global variable.
// Declare a local variable
var localVariable = "testtest";
// Declare a local variable
var localVariable = "testtest";
// Declare a global
globalVariable = "Cghdg";
globalVariable = "Cghdg";
What are JavaScript types?
• String
• Boolean
• Function
• Object
• Null
• Undefined
What is this keyword?
It refers to the current object.
how html Elements using javascript?
the getElementById method is preferred.
document.getElementById("test").style.color = "green";
how html Elements using javascript?
the getElementById method is preferred.
document.getElementById("test").style.color = "green";
Prototypes
PMA01:37
Every Java-
Script object has a second JavaScript object (or null, but this
is rare) associated with it. This second object is known as a
prototype, and the first object inherits properties from the
prototype.
All objects created by object literals have the same prototype
object, and we can refer to this prototype object in JavaScript
code as Object.prototype. Objects created using the new keyword
and a constructor invocation use the value of the proto
type property of the constructor function as their prototype.
So the object created by new Object() inherits from Object.pro
totype just as the object created by {} does. Similarly, the object
created by new Array() uses Array.prototype as its prototype,
and the object created by new Date() uses Date.prototype as its
prototype.
Object.prototype is one of the rare objects that has no prototype:
it does not inherit any properties. Other prototype objects
are normal objects that do have a prototype. All of the built-in
constructors (and most user-defined constructors) have a prototype
that inherits from Object.prototype.
Object.create() is a static function, not a method invoked on
individual objects. To use it, simply pass the desired prototype
object:
// o1 inherits properties x and y.
var o1 = Object.create({x:1, y:2});
Script object has a second JavaScript object (or null, but this
is rare) associated with it. This second object is known as a
prototype, and the first object inherits properties from the
prototype.
All objects created by object literals have the same prototype
object, and we can refer to this prototype object in JavaScript
code as Object.prototype. Objects created using the new keyword
and a constructor invocation use the value of the proto
type property of the constructor function as their prototype.
So the object created by new Object() inherits from Object.pro
totype just as the object created by {} does. Similarly, the object
created by new Array() uses Array.prototype as its prototype,
and the object created by new Date() uses Date.prototype as its
prototype.
Object.prototype is one of the rare objects that has no prototype:
it does not inherit any properties. Other prototype objects
are normal objects that do have a prototype. All of the built-in
constructors (and most user-defined constructors) have a prototype
that inherits from Object.prototype.
Object.create() is a static function, not a method invoked on
individual objects. To use it, simply pass the desired prototype
object:
// o1 inherits properties x and y.
var o1 = Object.create({x:1, y:2});