JavaScript入门【1】

JS的三种显示形式

1.通过链接外部的JS文件。
3.作为某个元素的事件属性值或是超链接的href的属性值。

屏蔽代码

1.<!--代码//-->若浏览器不支持JavaScript则代码被屏蔽。
2.<noscript>代码</noscript>当浏览器不支持JavaScript时,会执行noscript的内容。

JavaScript的基本语法

JavaScript的执行顺序

按照在HTML文件中出现的顺序依次执行。(若需要在HTML文件执行函数或全局变量,最好将其放在HTML的头部中。)

大小写敏感

JavaScript严格区分大小写。

忽略空白符和换行符

JavaScript会忽略关键字、变量名、数字、函数名或其他各种元素之间的空格、制表符或换行符,我们可以使用缩进、换行来使代码整齐,提高可读性。

语句分隔符
  1. 默认使用;结束语句。
  2. 可以把多个语句写在一行(每个语句尾部加;)。
  3. 最后一个语句的分号可以省略,但尽量不要省略。
  4. 可以使用{}括成一个语句组,形成一个块block。
  5. 通过 \ 可以实现对代码的折行操作。
注释

单行注释用//来注释,多行注释用/**/来双注释。

输出

通过document.write()想文档书写内容,通过console.log()向控制台写入内容。

JavaScript中的错误

语法错误通过控制台进行调试。
逻辑错误通过alert()进行调试。

声明变量
  1. 通过var关键字声明变量。
  2. 可以声明变量的同时给变量赋值。(若不赋值则变量的默认值为undefined)
  3. 一次可以声明一个变量也可以一次声明多个变量赋相同的值。
  4. 变量重名会产生覆盖,即后来定义的值级别更高。
  5. 变量名称严格区分大小写。(变量名称以下划线或字母开头)

数据类型与变量

原始数据类型
数值型

JavaScript中的数值包含整数和浮点数,所有数值都以双精度浮点型来表示。双精度浮点型可以表示-2的53次方到2的53次方的整数,也可以表示为政府1.7976的10的308次方的最大值和政府2.2250乘以10的-308次方的浮点数。

  1. 十进制数
    如:12,1.2,-23,.222e33,-1.3e3,3.E-2,12e+20。
  2. 十六进制数
    如:0x0,0XABCDEF,0x1a2b3c4d。
  3. 八进制数
    如:00,0123,0241234.
  4. 特殊值
    如:infinity无穷大(-1.79e309——1.79e309以外的数值会显示infinity或-infinity),NaN(代表not a number。当一个undefined表达式的结果为数值型数据是,该数值型就是NaN值,NaN是唯一一个不能和自身作比较的值。可以通过isNaN()检测值是否为NaN。)
字符串型

字符串型必须写在定界符之中,定界符为单引号和双引号。
转义符:
'代表单引号本身,"代表双引号本身,\n代表回车换行,\r代表换行,\t代表制表符。

特殊数据类型
无定义数据类型

undefined用来表示不存在的值或者尚未赋值的变量,对一个变量只声明不赋值或者赋予一个不存在的属性值,都会使这个变量的值为undefined。

空值NULL

null百世空值,表示什么都没有,相当于一个占位符。
null和undefined的区别就是undefined表示变量未被赋值,而null表示变量被赋予了一个空值。(null与undefined值相等但类型不同)

类型转换
隐式转换

1.转换成布尔类型
undefined->false | null->false | 数值型0或0.0或NaN->false | 字符串长度为0->false | 其他对象->true.
2.转换成数值型类型
undefined->NaN | null->0,true->1 | false->0 | 内容为数字->数字否则转换成NaN | 其他对象->NaN.
3.转换成字符串类型
undefined->“undefined” | null->“null” | true->“true” | false->“false” | 数值型->NaN、0或者与数值对应的字符串 | 其他对象->如果存在这个对象则转换为toString()方法的值 | 否则转换成undefined

强制转换
  1. 通过Boolean函数强制转换成布尔值
    0、-0->false
    NaN->false
    空字符串->false
    undefined->false
    null->false

  2. (1) 通过String函数转换成字符串
    数值->数值本身
    字符串->字符串本身
    true->“true” , false->“false”
    undefined->“undefined”
    null->“null”
    (2) 通过toString函数转换成字符串型

  3. 通过Number函数强制转换成数值
    数值->转换成原来的值
    字符串->如果可以解析为数值,则转换成数值,否则转换成NaN或0
    true->1,false->0
    undefined->NaN
    null->0

  4. 通过parseInt(string,radix):返回转换成整数的值
    (1)当参数radix的值为0时,或者没有设置这个参数,parseInt()会根据 string来判断数字的基数。
    (2)当忽略radix,JavaScript默认数字的基数规则为:
    2.1 string以0x开头,parseInt()会把string的其余部分解析为十六进制的整数
    2.2 如果string以0开头,那么ECMAScript v3允许parseInt()的一个实现把其后的字符解析为八进制或十六进制的数。
    2.3 如果string以1~9的数字开头,parseInt()将把它解析为十进制的整数
    2.4 字符串如果以合法字符开始,截取合法字符
    2.5 开头和结尾的空格是允许的
    2.6 如果字符串的第一个字符不能被转换成数字,parseInt()会返回NaN
    2.7 在字符串以“0”为开始时旧的浏览器默认使用八进制基数,ECMAScript 5,默认的是十进制的基数

  5. 通过parseFloat(string):返回转换成浮点型的值
    该函数指定字符串中的首个字符是否是数字,如果是,则对字符串进行解析,直到到达数字的末端为止,然后以数字返回该数字,而不是作为字符串

注意:Number函数将字符串转换为数值比parseInt函数严格,,基本上只要有一个字符无法转换成数值,整个字符串就会被转换成NaN。

运算符与表达式

表达式是用于JavaScript脚本运行时进行计算的式子,可以包含常量、变量、运算符。
运算符
算数运算符

+、-、*、/、%、++、–。
++、–分为前缀形式和后缀形式:前缀形式先加减1再执行,后缀形式先执行再加减1。(undefined、字符串型不支持自增自减运算符)
注意:+号用来连接两个字符串,只要+连接的操作数中有一个是字符串型,Js就会自动把非字符串型数据作为字符串型数据来处 理。Js代码的执行顺序是从左到右,所以在+连接的表达式中,遇到字符串型数据之前,所有出现的数值型数据(或者可以自动转换为数值型的数据)仍被作为数值来处理。为了避免这种情况我们可以在表达式前拼接一个空字符串。

字符连接符

通过+连接字符串

赋值运算符

=、+=、-=、*=、/=、%=。

比较运算符
>>=<<===!====!==

注意:比较运算符的结果为布尔类型,== 只比较值是否相等, === 比较值和类型

逻辑运算符

&&、||、!
注意:逻辑运算符的结果为布尔类型,&&如果第一个表达式为false造成短路,||如果第一个表达式true,造成短路。
短路:第二个表达式不执行!!!

三元运算符

exp1?exp2:exp3 (exp为表达式)
若exp1的值为真,则执行exp2,否则执行exp3.

其他运算符

逗号运算符:逗号用来将逗号表达式连接为一个表达式,新表达式的值为最后一个表达式的值,多用在变量声明处。
void运算符:void运算符用来指明一个表达式无返回结果
typeof运算符:typeof运算符用来返回一个字符串,返回的是操作数的数据类型。(null返回的类型是object)

流程控制

条件语句
  1. if(exp)执行一句代码
  2. if(exp){执行代码段}
  3. if(exp){exp为true执行代码段}else{exp为false执行代码段}
  4. if…elseif…||switch…case
  5. if嵌套
循环语句
  1. for循环
  2. while循环
  3. do…while循环
特殊循环控制

break终止循环
continue跳过当次循环,进行下一次循环

函数

什么是函数

函数是完成某一功能的代码段
函数是可以重复执行的代码段
函数方便管理和维护

自定义函数
通过function关键字

function 函数名称([参数,…]){代码段;return 返回值;}

  1. 函数名称不要包含特殊字符
  2. 函数名称最好含义明确
  3. 函数名称最好遵循驼峰标记法或下划线法
  4. 函数名称严格区分大小写
  5. 函数名称如果重复会发生覆盖
  6. 函数可以由参数也可以没有参数,可以由一个参数也可以有多个参数
  7. 函数通过return加返回值,如果没有return默认返回undefined
  8. 函数不调用不执行
匿名函数
  1. 函数表达式可以存储在变量中,变量也可以作为一个函数使用
  2. 可以将匿名函数作为参数传递给其他函数,接收方函数就可以通过所传递进来的函数完成某些功能
  3. 可以通过匿名函数来执行某些一次性的任务
通过Function()构造函数

通过JavaScript函数构造器(Function())定义

  1. var myFunction=new Function(‘a’,‘b’,‘return a+b;’)
  2. var myFunction=function(a,b){return a+b;}
    注意:以上两种方式是等价的,尽量避免使用new关键字

调用函数

作为一个函数调用

通过函数名称()进行调用,如果有参数传递相应参数即可。
在HTML中默认的全局对象是HTML页面本身,所以函数是属于HTML页面。在浏览器中的页面对象是浏览器窗口(window对象),所以函数会自动变为window对象的函数,也可以通过window.函数名称()进行调用

全局对象

当函数没有被自身的对象调用时,this的值就会变成全局对象。在web浏览器中全局对象是浏览器窗口window对象。
函数作为全局对象调用,会使this的值称为全局对象,使用window对象作为一个变量容易造成程序崩溃。

函数作为方法调用

可以将函数定义为对象的方法进行调用

使用构造函数调用函数

如果在函数调用前使用了new关键字,则调用了构造函数

作为回调函数调用函数

call(函数,参数)
apply(函数,参数数组)

参数
  1. 函数可以由参数也可以没有参数,如果定义了参数,在调用函数时没有传值,默认设置为undefined
  2. 在调用函数时如果传递参数超过了定义时参数,js会忽略掉多余参数
  3. js中不能直接写默认值,可以通过arguments对象来实现默认值效果
  4. 可以通过arguments对象实现可变参数的函数
  5. 通过值传递参数在函数体内对变量做修改不会影响变量本身
  6. 通过对象传递参数在函数体内对变量做更改会影响变量本身
变量的作用域
局部变量

在函数体内声明的变量,尽在函数体内可以使用

全局变量

函数体外声明的变量,在变量声明开始到脚本结束都可以使用


注意:尽量控制全局变量的数量,容易引发bug。最好总是使用var语句来声明变量。

  1. parseInt(string,remix):返回转换成数值型的值
  2. parseFloat(string):返回转换成浮点型的值
  3. isFinite(value):检测某个值是否是无穷值(若value是NaN或+inFinity或-inFinity则返回false)
  4. isNaN(value):检测某个值是否是非数字值(NaN)
  5. encodeURL(url):将字符串编码成URL
  6. decodeURL(url):解码某个编码的URL
  7. encodeURLComponent(url):将字符串编码为URL组件
  8. decodeURLComponent():解码一个编码的URL组件
  9. escape():对字符串进行编码
  10. unescape():解码由escape()编码的字符串
  11. eval():将JavaScript字符串当作脚本来执行
  12. Number(object):把对象的值转化为数字
  13. String():把对象的值转换为字符串
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值