第三章 基本概念

3.1

一、区分大小写

 JS中一切区分大小写。

 
二、标识符
指变量、函数(函数的参数)、属性的名字
 
标识符规则:
1、第一个字符必须是 字母、下划线(_)、美元符号($).
 
2、其他字符可以是字母、下划线(_)、美元符号($)、数字。
 
三、注释
//单行注释

/*
 * 多行注释,中间的*号不是必须,但可提高代码的可读性
 *
 */
四、严格模式
 
再严格模式下,ES3的一些不确定行为得到处理,对某些不安全操作会抛出错误。
"use strict" 

//告诉JS引擎切换到严格模式

3.3 变量

变量: 松散类型,保存任何类型的数据。

var message;
//定义一个未初始化的变量,值为undefined

var message = "say hi";
//定义并初始化一个变量。初始化就是给变量赋值

局部变量:再函数内使用var定义的变量。在函数退出后就被销毁。  可以使用一条语句定义多个变量,用,分割即可

var message = "hi",  age = 25, found = false;

全局变量:不在任何函数内定义,或没有使用 var 关键字定义初始化的变量。

3.4 数据类型

5种简单数据类型(基本数据类型):Undefined, Null, Boolean, Number, String。

1种复杂数据类型:Object, 一组无序的名值对组成。

1.typeof操作符

检测给定变量的数据类型

可能返回的值:

“undefined”--未定义。

“boolean”--布尔值。

“string”----字符串

“number"--数值。

“object”----对象或null

"function"-函数

2.undefined类型

undefined类型只有一个值,即自身。使用 var  声明的变量,未初始化的变量保存的值就是undefined;

没有必要显示的为一个变量声明undefined;

var message;
console.log(typeof message);
//undefined

3.Null类型

第二个只有一个值的类型,即null.表示空指针对象,这也是使用typeof检测null返回object的原因。

实际开发过程中,需要一个变量将来用于保存对象,最常用的就是用null初始化变量。

var car = null;
console.log(typeof car);
//object

4.Boolean类型

只有俩个字面值:true、false;

用于判断一个值是真值,还是假值。

数据类型 转换为true的值 转换为false的值
boolean true false
String 任何非空字符串 空字符串
Number 非零数字值(包括无穷大) 0和NaN
Object 任何对象 null
Undefined n/a(不适用) undefined

5.Number类型

整数:

最基本的数值字面了格式是十进制整数;再进行数值计算,所有8进制和16进制都会转换为10进制计算。

var num = 123;
//十进制整数123

var num1 = 070;
//八进制

var num2 = 0xa;
//16进制

浮点数:

即包括小数点的数字,保存浮点数值需要的内存空间是整数的俩倍。

NaN:

非数值,表示一个要返回数值的操作符,未返回数值的情况。

特点:1.涉及NaN的操作都会返回NaN,

         2.NaN与任何值都不想等。包括NaN本身。

isNaN(),接受一个参数,用以确定这个参数是不是“非数值”。

6.String类型

字符串特点不可变,一旦创建,值不可变。

要改变某个变量保存的字符串,先销毁原来的字符串,再用另一个包含新值的字符串填充该变量;

7.object类型

一组数据和功能的集合。对象可以通过执行new操作符,后面跟一个要创建的对象类型的名称来创建。

var o = new object();
//构造函数

Object类型所具有的任何属性和方法存在与具体的对象中。

Object的方法和属性:

constructor: 保存用于创建当前对象的函数。

hasOwnProperty():检测给定的参数再实例中的原型是否存在。

isPrototypeOf(Object): 检查传入的对象是否是传入对象的原型。

protopertyIsEnumerable(propertyNmae):检查给定的属性是否通过for-in可枚举.

toLocaleString(): 返回对象的字符串表示。

 valueOf()  
原始值 如果对象存在任意原始值,默认将对象 转换为表示它的原始值。
  var a = true;
alert(a.valueOf());     //true
复合值: 返回对象本身(函数,数组,正则继承了这个方法.),大多数对象无法真正表示为一个原始值。
 

对象到字符串转换步骤:

1 如果对象具有toString()就调用toString()方法,如果它返回一个原始值,将返回一个表示它原始值的字符串。
 
2, 如果对象没有toString()方法或者这个方法不返回原始值,如果存在valueOf()就调用,如果它返回一个原始值,将返回一个表示它原始值的字符串。
 
3,如果通过上面俩个方法无法获得原始值,就会抛出类型错误。
 
 

对象到数字转换步骤:

先调用valueOf()方法。
 
对象具有valueOf()就返回一个表示对象的原始值,在转换为数字。
如果不具有valueOf()就使用toString().先转为原始值,再转为数字。
 

“+ ” 和 ”==“对象到字符串的转换    返回的原始值直接被使用

日期类对象 是JS语言中唯一预先定义类型,对象到字符串转换。
 
非日期类对象, 对象到原始值的转换基本是对象到数字的转换(首先调用valueOf())
原文地址:https://www.cnblogs.com/zhangbaihua/p/5556317.html