01.第1-3章:JavaScript基础知识

第一章:javaScript简介

1.javaScript的组成


javaScript由ECMAScript、DOM(文档对象模型)、BOM(浏览器对象模型)构成。
ECMAScript:提供核心语言功能
DOM:提供访问和操作网页内容的方法和接口。
BOM:提供与浏览器交互的方法和接口。
当前主要有5个主流浏览器:IE、Firefox、 Chrome、Safari、Opera

第二章:HTML中使用JavaScript

1.script元素

1)有两种使用方式:

  • 直接在html页面中嵌入



    包含在<script>元素内部的JavaScript代码将从上至下依次解释,在解释器对<script>元素内部所有代码求值完毕之前,页面中的其余内容都不会被浏览器加载和显示。

  • 引入外部JavaScript文件,src属性是必须的,指向外部JavaScript文件的链接。



    2)<script>标签的位置
    按照惯例,是将<script>放到<head>中,目的是将所有外部文件的引用放在相同的地方。
    但是,在<head>中包含所有的JavaScript文件,意味着所有的JavaScript代码被下载、解析和执行完成以后,才能开始呈现页面内容。(浏览器遇到body才呈现内容)。对于很多JS页面代码的页面来说,会导致浏览器呈现页面出现明显的延迟,延迟期间一片空白。
    为避免这个问题,现在一般将JavaScript引用放在<body>元素中页面内容之后。



    3)延迟脚本
    <script>元素中的defer属性:表示告诉浏览器立即下载,但延迟执行。

    4)异步脚本
    <script>元素中async属性:不让页面等待脚本下载和执行,从而异步加载页面其他内容。

2.文档模式

混杂模式:在文档开始处没有发现文档类型声明,所有的浏览器都会默认开启混杂模式。
主要影响CSS内容的呈现,有些情况下会影响到JavaScript的解释执行。
标准模式:


第三章:基本概念

1.语法

1)区分大小写
2)标识符
标识符是按照如下规则

  • 首字符:字母、下划线、$(也就是不能以数字开头)
  • 其他字符:字母、数字、下划线、$

3)严格模式
ES5引入了严格模式,严格模式是为JavaScript定义了一种不同的解析与执行模型。对于ES3中一些不确定的行为将得到处理,对于某些不安全的操作也会抛出错误。整个脚本顶部添加如下代码:



这是一个编译指示,用于告诉引擎切换到严格模式。
也可以指定函数在严格模式下执行


4)语句以分号结尾

2.关键字和保留字

3.变量

ES的变量是松散类型的,松散类型就是可以用来保存任何类型的数据。每个变量仅仅是一个用于保存值的占位符。

var message;

未经过初始化的变量,会保存一个特殊的值--undefined
也可以直接初始化变量

var message = “hi”;

注意:

  • 使用var定义的变量为局部变量,在函数中使用var定义一个变量,这个变量在函数退出后就会被销毁。


  • 省略var操作符,变量就成了全局变量,能够在函数外的任何地方被访问到。


  • 但是,不推荐省略var操作符定义全局变量,在严格模式下会抛出ReferenceError错误。


4.数据类型

1)Undefined:如果这个值未被定义。
Undefined类型只有一个值:undefined,在使用var声明变量但未对其加以初始化时,这个变量的值就是undefined。



2)Null:对象为空
Null类型只有一个值:null,null表示一个空对象指针,typeof操作符检测null时返回object

如果定义的变量准备用来保存对象,最好将变量初始化为null。


undefined值是派生自null值,因此


3)Boolean:如果这个值是布尔值。
该类型有两个值:true,false;true不一定是1,false不一定是0。
转型函数Boolean()




if语句自动执行Boolean转换


4)Number:如果这个值是数。
var intNum=55;
var octalNum=070;//八进制0开头
var octalNum=079;//无效的八进制会被解析为79
注意:八进制在严格模式下无效,会导致支持的JavaScript引擎抛出错误。

var hexNum=0xA; //十六进制0x开头

  • NaN:非数值是一个特殊的数值,这个数值表示一个本来要返回数值的操作数未返回值的情况。
    比如,在其他编程语言中,任何数除以0都会导致错误,停止代码执行。在ES中,任何数除以0会返回NaN。
    • 任何涉及NaN的操作都会返回NaN
    • NaN与任何值都不相等,包括NaN本身


    • isNaN()函数来判断这个参数是否不是数值


  • 数值转换
    三个函数可以把非数值转换为数值:Number()、parseInt()、parseFloat()。
    Number()可以用于任何数据类型



    parseInt()、parseFloat()用于将字符串转换成数值。




    5)String:如果这个值是字符串。
  • 字符串可以由双引号或单引号表示:


  • ES中字符串是不可变的:


  • 转换为字符串
    1)toString()方法,但是null和undefined值没有这个方法




    2)不知道要转换的值是不是null和undefined时,使用String()方法,能够转换任何类型的值。



6)Object:如果这个值是对象。
var o=new Object();
Object的每个实例都具有下列属性和方法


5.操作符

1)一元操作符
i++,i--,++i,--i

  • 一元加操作符


  • 一元减操作符



    2)位操作符
    负数是以二进制补码进行存储的:


  • 按位非(~)



    这里num2的值是补码,所以是一个负数,通过减一取反,可以得到绝对值为11010,即26,那么num2就是-26。
    按位非的本质:操作数的负值-1


  • 按位与(&)
    两个数值对应位都是1时返回1,任何一位是0,结果都是0。


  • 按位或(|)
    有一个位是1就返回1,在两个位都是0才返回0。


  • 按位异或(^)
    相异为1,相同为0


  • 左移(<<)


  • 有符号右移(>>)


  • 无符号右移(>>>)
    无符号右移是以0来填充空位
    正数而言,和有符号结果相同。


    对于负数而言

    3)布尔操作符
    逻辑非(!)、逻辑与(&&)、逻辑或(||)
    4)乘性操作符
    乘法()、除法()、求模(%)
    5)加性操作符
    加法+、减法-
    6)关系操作符
    <,>,<=,>=
    7)相等操作符

  • 相等不相等(==,!=)
    先转换操作数,再比较


  • 全等不全等(===,!==)
    不转换就相等的情况返回true。



    8)条件操作符




    9)赋值操作符=

    10)逗号操作符


6.语句

1)if语句



2)do-while



3)while

4)for



5)for-in

注意:
如果表示要迭代的对象的变量值为null或undefined,for-in语句会抛出错误。ES5更正了这一情况,不会再抛出错误,只是不执行循环体。为了保证最大限度的兼容性,在使用for-in循环之前,先检测确认该对象的值不是null或undefined。
6)lable语句

7)break和continue

break:跳出循环
continue:跳出本次循环继续从循环顶部开始下一次循环。
8)with语句



9)switch语句

通过为每个case后面添加一个break语句,可以避免同时执行多个case代码的情况。
如果要混合几种情形:

7.函数


ES中函数在定义时不必指定返回值,任何函数都可以通过return来实现返回值。



函数在执行return语句之后就会停止并立即退出。


  • 理解参数
    ES函数不在乎传进来多少参数,也不介意传入的是什么类型。即便定义的函数只接收两个参数,在调用时未必一定传入两个参数。
    ES参数内部使用一个数组来表示的,在函数体内可以通过arguments对象访问参数数组,即使定义时没有写参数,调用时也可以直接将参数值放入。



  • 没有重载


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342

推荐阅读更多精彩内容