一,基础
每个语言都有自己的独特的地方,但是通常的都是有 语法 ,操作符 ,数据类型 ,内置的功能,这些东西都大同小异,
1,区分大小写;
2,驼峰命名;
3,注释;
4,严格模式;
5,语句;
注意标点符号;
6,局部变量和全局变量;
定义时一定需要注意;(犯了很多的错误)
7,数据的类型;
Undefined , Null , Number ,Boolean ,String , Object;
操作符:
typeOf : 用来检测数据类型用的; ( 是操作符,不是函数 )
实例: var message = ' some thing ' alert( typeOf message ) //String
特殊情况: typeOf null 返回的是对象 object 而不是 null
Undefined 当一个值被定义,但是没有初始化 var message ; 这就是 undefined
alert( message == undefined ) // true
Null 逻辑角度 是 一个空对象指针 var car = null typeOf car // object
注意一点: 在定义变量 是想在后面 保存对象用的话 就 定义为 null
Boolean 两个值 true , false Boolean( ) 转化值为 boolean
数据类型 true false
string 非空 ‘’
Number 非零数值 0或 NaN
Object 任何对象 null
Undefined n/a ( 不适用的缩写 ) undefined
这些对于 if 语句的转化很重要 : var message = 'hellow'
if( message ) { alert( 'value is true' ) } 这就是自动执行Boolean 转化 (好好理解,很有用处的)
Nummber 整数,浮点型( 有时也称为 双精度值 )
通常是使用十进制; 8,16 进制也有
八进制 字面值第一位数字必须是 0
十六进制 前两位 0x
js( +0 -0 之说 )
浮点数值:可以使用 e 来表示 最大值 7.8e10 最小值 0.7e-10 废话 : 0.1+0.2 = 0.3 不要去证实在 es
数值范围:es 最小值 保存 Number.MIN_VALUE 大多数浏览器: 5e-324 ;
最大值 Number.MAX_VALUE 1.7976931348623157e+308
值超出范围:转为 Infinity 之后 在不进行计算;
isFinite() 函数可以判断值是否在最大值和最小值之间; 返回 true,false ; 来判断
NaN 非数值,是个特殊的数值,这个数值作用是,本返回的是数值,但未返回数值时,不会抛出错误;
NaN与任何值都不相等,包括NaN ;在多步计算中可能会出错;
isNaN( ) 函数, 在接受一个值的时候,会尝试将其值转为数值,
任何不是数值的都会返回 true,
初识valueOf 获取对象的初始值 来取得一个 Boolean 对象的原始值
数值转换: 将其他值转为数值 函数 : Number( ) 适用于任何类型 , parseInt( ) 适用于将 字 符 串转为数字 , parseFloat( ) 适用于将字符串转为数字 ;
number 将 boolean 值转为数值 true 1 ,, false 0 , null 0 , undefined NaN ,'' 0;
如果是对象 则调用 valueOf () ,按照前面的方法转化,,如果时 NaN 则调用 toString () 在依照前面
对于复杂的数值转化整数时,多用parseInt( ) 只取整数,小数点无效 ,parseFloat( ) 只取一个小数点
String类型: 由零或多个16位Unicode字符组成的字符序列,可以由 ‘ ’ “ ” 表示;
字符字面量:也叫转义序列,用于表示非打印字符,具有特殊意义;
需要记住一些特殊的,用的多的;
字符串的特点: es中字符串是不可变的,想要改变,就要销毁原来的值,然后用另一个新值填充;
如: var lang = "java" ; lang = lang + "script" 销毁值发生在后台,
转换为字符串: 一个值转为字符串有两种方式: toString() null undefined 这两个没有这个方法 ;
toString() 也可以传递参数,但是会改变值;
String( ) 转型函数; 可以将任何值转为字符串
Object类型: 是一组数据和功能的集合; 通过 new 来创建 对象类型名称;
object 每个 对象都具有一些属性和方法; var o = new Object();
constructor : 用于创建保存当前的对象函数 ; 如上面的 Object() 构造函数;
hasOwnProperty( propertyName ) : 用于检查给定属性在当前对象实例中是否存在
参数名必须是字符串,如:o.hasOwnProperty( "name" );
isPrototypeOf( object ) : 用于检查传入的对象是否为当前的对象原型;
propertyIsEnumerable( propertyNaem ) : 用于检查给定的属性是否能够使用 for-in
语句,来枚举;参数与 hasOwnProperty 一样;
toLocaleString( ) : 返回对象的字符串表示,该字符串与执行环境的地区对应;
toString( ) : 返回对象的字符串表示;
valueOf( ) : 返回对象的字符串,数值,或布尔值表示, 与返回值 toString( ) 相同;
操作符: 算术操作符,位操作符,关系操作符,相等操作符;
一元操作符:只能操作一个值的操作符;
递增 和 递减 有前置和后置 ++i ; --i ; 这种操作符在计算机中称为副效应
可以对字符串,布尔,浮点,对象,也可以操作,先转化,后操作,
位操作符:( 以后有机会看 )
布尔操作符: 对于 if 条件语句有大作用; 操作符: 非 !(NOT),与 &&(and) ,或 ||(or);
! 适用于任何数值 !!也有他的作用
语句: if do-while ( 代码至少执行一次 ) while ( 前测试 )
for( ) for 与 while 相同,for是将所以条件聚合在一起的
for-in 是一种精确的迭代语句,可以用来枚举对象属性,
for( property in expression ) { statement }
例子: for( var propName in window ) { document.write( window ) } 循环BOM 的window
每循环一次,都会将window 的值存入 propertyName
当值为 null undefined 时,会跑错
es5 改变的不会抛错, 遇到只是不执行,
label ( 没太见过 )
break 退出后会强制执行后面的语句;
continue 退出循环,不执行后面的语句
label break continue 可以一起使用
with 可以将代码的作用于写到一个特定的对象中;
with( laca ) { var aa; var bb ; var cc; }
swithch 流控制语句 与if 相似 es 的switch 的 case 可以是任何值 ;
函数: 基本语法 function fName( arg1,arg2,arg3 ) { statements }
参数的理解:{ 需要以后了解 }
重载( 无,后面的覆盖前面的 )