Javascript

、Javascript基本介绍与发展趋势

1. JavaScript能用来做什么

    页面分为:结构、样式、行为

   对页面进行渲染,让页面有行为,让页面动起来.

 JavaScript的历史?

    JavaScript在设计之初只是为了做表单验证。但是现如今,JavaScript已经成为了一门功能全面的编程语言,已经是WEB中不可缺少的一部分,如今的JavaScript是一门既简单又复杂的语言,说它简单是因为可能一小时就能学会,但是如果你要真正掌握它,可能就得需要个几年的时间了。

    NetScape公司在1995年着手开发了一种名为liveScript的脚本语言,为了营销目的,搭上当时媒体热炒的Java的顺风车,临时更名为JavaScript。其实,JavaScript和Java没有一点关系。JavaScript1.0获得了巨大的成功。

    NetScape公司趁热打铁继续发布了JavaScript1.1版本,使得Web获得更高的关注,同时奠定了自己在浏览器届的霸主地位。

    如果事情一直这样下去,那么NetScape可能依然是我们现代浏览器的霸主,可是在1996年互联网巨头微软公司进入浏览器领域,推出JScript,和NetScript公司开始争夺博主地位。

    最让人担心的问题也因此出现,当时的JavaScript和JScript是完全不同的两个版本,这个方向的语言没有一个标准存在,业内的吐槽日益严重。终于,多方联合共同制定了一个标准,这个标准就是ECMAScript,ECMAScript做为JavaScript实现的基础。虽然制定标准之花费了几个月,但是这几个月却对未来20年的JavaScript发展起到的决定性的作用。

    此时经过NetScape和微软的争夺,各大互联网厂商都发现了浏览器这块巨大的蛋糕,于是一场激烈的厮杀就开始了......

        但是NetScape并没有放弃,在1998年公开源码,并重新命名为Mozilla,并重写所有程序,在2002年发布了第一个浏览器版本FireFox登场,在2004年开始叫板IE浏览器,IE推出IE7与之抗衡,拉开了第二次浏览器大战的序幕。

JavaScript的组成:

    ECMAScript、BOM、DOM

    ECMAScript是一个标准,它规定了语法、类型、语句、关键字、保留子、操作符、对象。(相当于法律)

    BOM(浏览器对象模型):可以访问浏览器窗口的浏览器对象模型,对浏览器窗口进行操作。

    DOM(文档对象类型):DOM把整个页面映射成一个多层节点结构。HTML页面组成都是某种类型的节点,这些节点又包含着不同类型的数据

2、Javascript和HTML5的关系

    HTML5是一种新的技术,就目前而言,我们所知的HTML5都是一些标签,但是有了JS之后,这些标签深层的扩展功能才得以实现。

    比如video标签,我们对其理解为一个简单的标签,但实际上,video标签还有更深层次的扩展功能。

3、如何编写及运行JS

    JS也是一种脚本语言,他可以有两种方式在HTML页面进行引入,一种是外联,一种是内部。

  1⃣️外联JS的写法为:

        <script src="相对路径"></script>

        这是一条html语句,原则上可以放在html页面的任意位置,不用和link标签一样非得放在head部分,  相对路径链接的是JavaScript文件,文件的扩展名为.js,如index.js

   2⃣️ 内部JS的写法为:

        <script>

            //在script标签内写js脚本

        </script>

    ❌错误的写法:

        <script src="相对路径">

            //在script标签内写js脚本

        </script>

 向页面中打印内容:

        document.write(“这是一些文本内容”);

    可以直接解析标签:

        document.write(“<strong>加粗的内容</strong>”);

    转义字符:

        &lt;  ====  <

        &gt;  ====  >

        document.write(“&lt;strong&gt;这是一些加粗的内容</strong>”);

console.log("hello world")

向浏览器的控制台打印信息,跟document.write()原理类似

-------------------------------------------------------------------------------------------------------------------

4、变量的概念及基本运算

    如何创建一个变量?

    var a = “<strong>加粗的内容</strong>”;

    var是一个关键字,用来声明一个变量;

    =  表示赋值(取名字);

    声明变量以“=”为区分,左边为变量名(被赋值),右边为存放进变量中的内容(给变量赋值)。

    注意:JS中的“=”号,和数学中的“=”不一样,在JS中“=”的作用是赋值(取名字)。

    var 声明变量的底层原理:我们所写的程序运行在内存中,当我们使用关键字var 声明一个变量的时候,计算机会从内存中划分一个空间,为我们存放不同类型的内容做准备。


    变量的类型(数据类型)

        因为存放在变量中的数据是放在计算机的内存中的,计算机只识别0和1,所以需要对不同类型的数据进行转义,转义的结果会导致所需空间不同,所以JS中分成很多种数据类型,以便计算机储存时使用。

    数值类型(number):1234567890

    字符类型(string):"123"  'asd'  "文字"   "数据"(被单引号或双引号,包裹的部分,引号必须配套使用)

    未定义类型(undefined):这是一种特殊类型,当变量被声明,但是没有被赋值的时候,那么该变量的类型的undefined

    布尔值类型(boolean):true,false  (真,假)

    对象类型(object):{}object

    数组类型(array):[]

    如何区分或得知不同的数据类型:

    通过关键字  typeof 变量名

    小技巧:声明一串变量时可以这么写,var a=1,b=2,c=3;(但是不推荐初学者这么用,因为这样的声明方式会导致注释不明确)

5、变量命名规则和关键字的介绍

            小钢炮?    我们能从名字中读出很多含义,是因为我们的语言常识,同样,变量也有一套类似的常识标准,代表了各种含义,如下:


    也就是第一个规则:

       语义化,前缀就能表示出这个变量的类型

    第二个规则:

        开头必须为字母或者$或者_

    那么能不能使用typeof做为变量名呢?想都别想!

    第三个规则:

        关键字和保留字不能用做变量名。

    关键字:

        以下这些关键字用于执行特定操作等。按照规则,关键字也是语言保留的,不能用做标识符。

breakdoinstanceoftypeof

caseelsenewvar

catchfinallyreturnvoid

continueforswitchwhile

debugger*functionthiswith

defaultifthrowdelete

intry  

    保留字:未来可能做为关键字的存在

abstractenumintshort

booleanexportinterfacestatic

byteextendslongsuper

charfinalnativesynchronized

classfloatpackagethrows

constgotoprivatetransient

debuggerimplementsprotectedvolatile

doubleimportpublic 


    alert()方法

    alert()方法用来停止浏览器加载代码,并弹出()里面的内容。

    浏览器解析代码的顺序(从上到下,从左到右)

6、算术、赋值、关系运算符的讲解

    JS中的运算符分为:算术/赋值/关系/逻辑/字符串

    算术运算符:  +加法    -减法    *乘法    /除法    %取余


    +号,有两层意思,第一层算数之间的加法;第二层字符串的连接;执行过程中,先检测加号两边的数据类型,如果发现字符型,那就先 生效字符的连接

        数据类型转换:强制转换、隐式转换

    其实还是有点不一样:和我们概念中的逻辑运算符很多都是不一样的:

        比如:  =    ==    ===


    并且不同数据类型之间的运算得到的结果,可能不是我们意想中的;

    有什么差别呢?

        赋值运算符: =    +=    -=    *=    /=    %=

运算符例子等价于运算结果


7、编程习惯

    语句结束要加分号,虽然不加分号在JS语法上没有什么问题,但是建议不要省略分号,加了分号之后可以使用软件压缩。

    这是一种良好的编程习惯(JavaScript权威指南)。

第三节:精讲

1、变量不同类型之间的自动、手动类型转换

    我们想做数学运算的时候,应该先对所有的数据类型进行统一(统一成数字格式),这个时候我们就该用到数据类型的转换。

        var a=3,b="10",c=true;

        alert(a+b);

        alert(b+c);

        alert(a+c);

    运算结果好像并不是我们想要的。

    转换成字符型:

        toString()

            var num = 123;

            num.toString();转换成字符串

            将num从数值型变成字符型

        toFixed()

var num = 123.456;

            num.toFixed(n);转换成字符串的同时保留n位小数

    拓展:浮点数:

        电脑在运算过程中以正确的二进制浮点进行运算,但是我们输入的都是十进制的数,这两者并不是总是能转化的那么准确,有时候会得到正确的结果,但有时候就没那么幸运。

        alert(0.7+0.1);???

        alert(0.6+0.2);???

    转换成数值:

      parseInt();转换成整数,可以接受两个值

        parseFloat();转换成浮点数

    两者的不同:

        parseInt();该方法从左向右,检测数字或字符串,当第一次发现一个不为数字的字符时,把之前的所有进行返回,如果字符串中第一个就不是数字,那么返回NaN

        例如:parseInt("123abc");a做为第一个不是数字的字符;返回a之前的所有值,则该方法返回123

             parseInt("abc123");a做为第一个不是数字的字符,且处在字符串的第一位,则判定该字符串无法转换为数字返回NaN

        parseFloat();该方法检索数字或字符串后面第一个.后的不为数字的字符,并对之前所有的结果进行返回,如果第一个字符不为数字,那么返回NaN

        例如:parseFloat(“123.456");返回123.456

             parseFloat(“123.4a56");返回123.4

             parseFloat(“123.00");返回123

             parseFloat(“123.0a56");返回123

        想想为什么?

        关于浮点数:Math.round()四舍五入取整浮点数。

    认识NaN:它是一种特殊的Number类型,代表意外转换的数字,NaN和任何东西都不相等,包括它自己。




3.自增自减运算

    ++        --

    a++表示在a原有的基础上增加1

    a--表示在a原有的基础上减小1

    那么,++a  和  --a  呢?

    var a = 1;

    alert(a);

    var b = 1;

    alert(b++);

        alert(b);

    var c = 1;

    alert(++c);

    前自增与后自增有本质的区别,他们相同点都是为自身加了1,不同点是

        前自增是先加1,再使用操作数的值

        后自增是先使用操作数的值,再加1

    前自减和后自减同上。

4.NaN的概念和应用

NaN:是一种特殊的Number类型,代表意外转换的数字,NaN和任何东西都不相等。厉害到自己都不等于自己

   alert(NaN == NaN);返回false

    var a = 0;

    var b;

    var c = a + b;

    alert(c);

   认识isNaN()函数,该函数判断括号内的值是否是NaN,是就返回true,不是就返回false

    alert(isNaN(c));

5.Number方法的应用

    Number()为强制数据类型转换:

    Number("hello world");    //NaN

    Number("123456");         //123456

6.八进制和十六进制的介绍

    比如进制,同样也是一种规则,这种规则是什么样的呢?数数字到9以后,你会想到什么?为什么会是10呢?

    9就是10进制的极限了,那么当继续计数的时候,会将9向前进1,然后9归零,这就是10;

    那么什么是二进制呢?逢2进1呗,如何用二进制表示3 ?11

    什么是八进制呢?如何用八进制表示10 ?12

    什么是十六进制呢?如何用十六进制表示25 ?19


©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 终于开启了多样化生活方式,它将我的能量和天赋最大程度的挖掘,让我可以短期内获得巨大进步,我一定要将这个能力保持下去。
    喜水之羊阅读 91评论 0 0
  • 四个收获 (一)本次活动的目标和安排。 理解分身术的训练方式; 构建语言、情绪、信念的触发器; 灵活使用自我觉察表...
    夜影随风阅读 328评论 3 0
  • 1.书名:《亲子作文:作家妈妈教你陪孩子玩作文》 2.作者:叶子紫 感受:看到这本书时,内心还是非常有感觉的。毕竟...
    心晴317阅读 435评论 2 0

友情链接更多精彩内容