当前位置: 代码迷 >> JavaScript >> javascript入门(1)
  详细解决方案

javascript入门(1)

热度:117   发布时间:2012-07-29 15:26:13.0
javascript入门(一)

? ? ? ?在大牛小徐子的帮助下,今天花了1小时的时间把js初步学习了一遍,当然只是摸了个门槛,只是想找点进入。

把笔记贴出来一下,做个学习笔记。


? ? ? ? js主要分3个领域:

? ? ? ? 1. js基础 2. dom基础 3. js 高级 ??http://www.jplusui.com/resources/javascript/studymethod.html

? ? ? ? 今天学习就是基础部分,入门级别

? ? ? ?一.数据类型

? ? ? ??所谓的数据类型,就是数据的格式,比如常见的有数字、文本。js内的数据类型有:

? ? ? ?(js对大小写敏感)

? ? ? ? ?1. Number 数字,比如 1, ?1.2 , ?.4?,?2e1,?0x34

? ? ? ? ? ??2个数字是很特别的, 一个是 Infinity?? 表示无穷大 ??1 /0 == Infinity

? ? ? ? ? ??还有一个特别的是 NaN? 表示不是数字 ??当表达式无法计算时,返回 NaN ?比如?? 0 / 0 == NaN?


? ? ? ? ?2:? Boolean? 布尔型

? ? ? ? ? ??布尔型只有2个值 true false


? ? ? ? ?3. 字符串 String

? ? ? ? ? ?"a" 'a'??? 'a\n' ?字符里的\表示转义字符,js 单引号和双引号一样,"'"? '"'??? 都是可以


? ? ? ??上面几个类型都是很直白的,叫基础类型。


? ? ? ? ?4. Array 数组? 相当于数学的数列

? ? ? ? ? ?5. Object 对象,任何类型都是对象

? ? ? ? ? ?6. Function 函数

? ? ? ? ? ?7. RegExp 正则类型

? ? ? ? ? ?8. Date 日期类型


? ? ? ? ?上面几个类型都是引用类型。


? ? ? ? ?9. Undefined 类型? 只有1个值: undefined

? ? ? ? ?10. Null 类型? 只有1个值:? null

?

? ? ?小测试:

? ? ? ? ? 说明下面的类型:

? ? ? ? ? ??3 ? ? ? ? ? ? ? ? ?Number ??注意 类型都是大写的

? ? ? ? ? ? null ? ? ? ? ? ? ? Null?

? ? ? ? ? ? '\

? ? ? ? ? ? ? ?' ? ? ? ? ? ? ? ? String ? ?木有错\后面有回车 ??\是转义, \加回车用于多行的

? ? ? ? ? ??/3/ ? ? ? ? ? ? ? ?RegExp?

?

? ? ? ? ? ?'false' ? ? ? ? ? ? String?

? ? ? ? ? ?String ? ? ? ? ? ?Function??类型本身是 Function

? ? ? ? ? ?[] ? ? ? ? ? ? ? ? ? Array?

? ? ? ? ? ?{c:4} ? ? ? ? ? ? Object?

? ? ? ? ? ? ? ? ? ? ? ?任何类型都是Object,{} 定义的不属于任何其它类型,只能是 Object。引用类型的变量创建 ? ? ? ? ? ? ? ? ? ? ? ?是通过new的。比如 new Array()? 可以创建一个数组,但内置类型都有快捷方式来创建,比如 ? ? ? ? ? ? ? ? ? ? ? ?[]? 也可以创建数组 。类似的有 ?new Array()?? -? [1,2,3] ;new RegExp()? - /aa/

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? new Object()? -? {key: value, key1: value1};new Function() - function(){}

?

?

? ? ? :? 表达式计算

? ? ? ? ? ? 1.?字符串在计算时(除了+)会先尝试转数字。

? ? ? ? ? ?? ? 若无法转化成功,则计算结果为NaN 。??

? ? ? ? ? ? ? ?字符串+运算时,每个变量转字符串。其它计算时(包括单目的+计算),每个变量转数字。

? ? ? ? ? ? ? ?字符串比较时,也是每个变量转字符串。

?

? ? ? ? ? ? 2. 其它类型转成数据

? ? ? ? ? ? ??需要四则计算的时候,比如 - * / 位运算. 这个在表单验证的时候很有效。比如用户输入的是字符串,

? ? ? ? ? ? ??这样才能计算: ?+'1' + +'3',不然计算结果是字符串的连接

? ? ???而每个类型转数字和转字符串的方式都是不同的。

?

? ? ? ? ? ? ? ?①.Number : 不需要转。

? ? ? ? ? ? ? ?②. Boolean: false -> 0 true -> 1

? ? ? ? ? ? ? ?③.String. 包含数字本身的字符串转数字,其它是NaN

?

? ? ? ? ? ? ? ?④.FunctionObjectArrayRegExp 转数字都是 NaN

? ? ? ? ? ? ? ?⑤. Undefined 转数字是 NaN

? ? ? ? ? ? ? ?⑥. FunctionObjectArrayRegExp 转数字都是 NaN

? ? ? ? ?? ? ? ⑦.null 转数字是 0

? ? ? ? ? ? ? ?一般,为了变量强制转数字,只需在前面加个+ 。所有变量转为数字都是调用了 valueOf()

? ? ? ? ? ? ??

?

? ? ? ? ? ? ?3.?所有类型转 字符串的方法:

? ? ? ? ? ? ? ? ??①.?Number String Boolean 都是直观的

? ? ? ? ? ? ? ?②.true -> "true"

? ? ? ? ? ? ? ?③.数组转字符串就是每个成员变字符串,?然后,连接

? ? ? ? ? ? ? ?④?function f(){} => "function f(){}"?.函数转为其源码

? ? ? ? ? ? ? ?⑤.?Object 转为 "[object Object]" ??后面的Object是构造函数的名字。

? ? ? ? ? ? ? ?⑥.?RegExp ? Date 是特定的

? ? ? ? ? ? ? ?⑦.undefined null 也是直观的

? ? ? ? ? ? ? ?所有变量转为字符串都是调用了 toString()? 方法


? ? ? ? ? ?4.所有类型转布尔类型

? ? ? ? ? ? ? ? ??①.?Number:?除了?0??NaN??false

? ? ? ? ? ? ? ②.?String?除了?''???false

? ? ? ? ? ? ? ③.?Boolean 除了 false false

? ? ? ? ? ? ? ④??undefined null false

? ? ? ? ? ? ? ⑤.?其它都为 true?

? ? ? ? ? ? ? ? ? ? ? ?所以,转为false的就这些: ??0 NaN '' false undefined null

?

? ? ? ? ? ? ? 5.js &&? ||? 不返回truefalse,而是返回其中的一个值

? ? ? ? ? ? ? ?当运算 A || B ,会先计算A的布尔值,如果true,返回 A。否则返回 B。 当运行A&&B ,也会返回A或B。因 ? ? ? ? ? ? ? ? ? ? 此 A&&B||C会先判断A,满足后判断B,AB有一个满足就返回,都不满足则得到C。

? ? ? ? ? ? ? ? ? ??http://www.jplusui.com/resources/javascript/basic.html

? ? ? ? ? ? ? ? ? ?undefined || 3 则返回 3

?

? ? ? ? ? ? ? ? 6.?typeof 运算

? ? ? ? ? ? ? ? ? ? ?typeof 'a' -> 'string' ? ?typeof undefined? ->? 'undefiend' ?

? ? ? ? ? ? ? ? ? ? ? ? ??typeof 返回的是小写的,返回的值是一个字符串,不是类型本身

? ? ? ? ? ? ? ? ? ? ?typeof null -> 'object'

?

? ? ? ? ? ? ? ? 7.其它的特殊操作符有:delete new void

? ? ? ? ? ? ? ? ? ? ?void 3 -> undefined ? 。void 总是返回 undefined

? ? ? ? ? ? ? ? ? 还有一个是? instanceof,比如 new String () instanceof String??

? ? ? ? ? ? ? ? ? ?判断变量是不是string这个类型,当然,只能在new的时候用,不是new出来的不能判断

? ? ? ? ? ? ? ? ?8. 其他

? ? ? ? ? ? ? ? ??[0,0][0,0]

?

? ? ? ? ? ? ? ? ? a = [0,0]

? ? ? ? ? ? ? ? ? a[0,0] ? ?a[0,0] = a[0]

? ? ? ? ? ? ? ? ??,?是运算符?逗号表示就是取最后的那个?? 例如?1,2,3,4?? 就是普通的表达式计算,返回最后一个

?

? ? ? ? ? ? ??表达式测验:

? ? ? ? ? ? ? ?1+4 ? ? ? ? ? ? ? 5

? ? ? ? ? ? ? ?1/0 ? ? ? ? ? ? ? ?Infinity

? ? ? ? ? ? ? ?-1-1-1 ? ? ? ? ? ?-3

? ? ? ? ? ? ? ?'1-1' ? ? ? ? ? ? ?'1-1' ??字符串需要加引号

? ? ? ? ? ? ? ?'1' + 1 ? ? ? ? ? ?‘11’

? ? ? ? ? ? ? ?'1' - 1 ? ? ? ? ? ? 0 ??

? ? ? ? ? ? ? ?'false' - 1 ? ? ? ? NaN ??'false' - 1 = NaN - 1 = NaN ?不是数字的字符串无法转数字, 返回NaN


? ? ? ? ? ? ? ? 1+ 2 + '3' + 4 + 5 ? ? ? ‘3345’

? ? ? ? ? ? ? ? -Infinity ? ? ? ? ? ? ? ? ? -Infinity ??负无穷大

? ? ? ? ? ? ? ??+'2'+1 ? ? ? ? ? ? ? ? ? ? ?3 ?'2' 前面的不是加,而是正,所以字符串先转数字,so结果是 2+1 = 3

? ? ? ? ? ? ? ? +'' ? ? ? ? ? ? ? ? ? ? ? ? ? NaN

? ? ? ? ? ? ? ??'59' >= '6' ? ? ? ? ? ? ? ? ?false

? ? ? ? ? ? ? ??'59' > 6 ? ? ? ? ? ? ? ? ? ? true ???先转数字 ?数组转数字: ?先转字符串,然后字符串对应转数字

? ? ? ? ? ? ? ? '' + [1,2,3] ? ? ? ? ? ? ? ?'1,2,3' ??数组转字符串就是每个成员变字符串, 然后,连接

? ? ? ? ? ? ? ??null == undefined ? ? ? ?true ??== 计算的时候,如果同类型,直接比较,否则转为类似的类型

? ? ? ? ? ? ? ??4 == '4' ? ? ? ? ? ? ? ? ? ? true

? ? ? ? ? ? ? ??null !== undefined ? ? ? true? ??有一种是 === 操作, 除了==还需类型相同

? ? ? ? ? ? ? ? ? ??null || undefined && 2 ? ?undefined

? ? ? ? ? ? ? ? ? ??0 / 0 || 1 / 0 || 2? ? ? ? ? ? ?Infinity

? ? ? ? ? ? ? ? ? ??1 ? 2 : 3 ? 4 : 5 ? 6 : 7 ? ?= 1 ?? (2)?? :???? (3 ? 4 : 5 ? 6 : 7) = 2 ? ? ??:? 就近原则

? ? ? ? ? ? ? ? ? ?((-1 + '2' - 3) / 4) && 5 || 6 ? 7 : 8 ? ? ? ? ? -3.75

? ? ? ? ? ? ? ? ? ? ? ? ? ? ???jsNumber 相当于java? double 类型,js没有整数类型,所有数字都是允许小数的

? ? ? ? ? ? ? ? ???typeof?? (0 / 0) ? ? ? ? ? ? ? ? 'number' ? ??NaN本身也是数字所以返回??? 'number'

? ? ? ? ? ? ? ? ? ?typeof typeof String ? ? ? ? 'string'

?

? ? ? ? ? ? ?四 ?语句。这个和java一样, 直接pass

? ? ? ? ? ?五.? 系统内置对象和函数??

  相关解决方案