JavaScript 基础1

1.JavaScript 认识

上个世纪的1995年,当时的网景公司正凭借其Navigator浏览器成为Web时代开启时最著名的第一代互联网公司。

由于网景公司希望能在静态HTML页面上添加一些动态效果,于是叫Brendan Eich这哥们在两周之内设计出了JavaScript语言。你没看错,这哥们只用了10天时间。

为什么起名叫JavaScript?原因是当时Java语言非常红火,所以网景公司希望借Java的名气来推广,但事实上JavaScript除了语法上有点像Java,其他部分基本上没啥关系。

2.使用

  JavaScritp的基本元素是语句。一条语句代表着一条命令。通常以分号(;)结尾。
  实际上分号用不用都行,只是为了增加阅读性。

  <!DOCTYPE html>
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>标题</title>
  </head>
  <body>    
        <script type="text/javascript">
              document.writeln("hello world");
        </script>
  </body>
  </html>

  document.writeln("hello"); 仅仅是在文档中添加了一些文字,并没有什么明显的效果,
  我们这么演示其实是告诉大家,js的作用就是这样通过代码去控制界面的呈现效果。

3.数据类型

  我们学习编程语言大多数都是概述 → 数据类型 → 语法 → 类
  JavaScript也是一样的,定义变量要使用到var关键字,在定义的同时可以为其初始化赋值。
  • 局部变量:定义在函数中的变量称为局部变量,只能在该函数范围内使用。

  • 全局变量:直接在script元素中定义的变量称为全局变量,可在任意地方使用。

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>标题</title>
    </head>
    <body>    
        <script type="text/javascript">
            <!-- 定义字符串  -->
            var str = "abc";
            <!-- 定义数值  -->
            var num = 1;
            <!-- 定义布尔  -->
            var status = false;
        </script> 
    </body>
    </html>
    
  • 注意:
    JavaScript是一种弱类型的语言,所谓弱类型,指的是他不需要明确的声明变量的类型,可以随意的赋值自己想声明类型的变量,还可以根据场景在类型间自由转换。

  • 字符类型:string类型就是java中的字符串,var str = "abc";

  • 布尔类型:boolean类型由两个值,true和false。

  • 数值类型:整数和浮点数都用number类型便是。
    var num = 5;
    var pi = 3.14;
    var color = 0x123456;

4.定义函数

  定义函数其实就是我们需要用到的一些API封装起来,这样的话我们就不用每次使用都重新写一遍,只需要调用函数即可。

  例:定义有参函数,无参函数,有返回值函数

  <!DOCTYPE html>
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  <title>标题</title>
  </head>
  <body>    
      <script type="text/javascript">
           <!-- 定义无参函数 -->
            function hello(){
                document.writeln("hello");
            }
            hello();

            <!-- 定义有参函数 -->
            function add(num1,num2){
                document.writeln(num1+num2);
            }
            var num1 = 2;
            var num2 = 3;
            add(num1,num2);

            <!-- 定义有返回值函数 -->
            function getSum(num1,num2){
                return (num1+num2);
            }
            document.writeln(getSum(num1,num2));

      </script>
      <hr/>
      <script type="text/javascript">
            hello();
      </script>
  </body>
  </html>

5.创建对象

  • 创建对象:通过new Object的方式来创建对象。
    <body>
    <script type="text/javascript">
    var persion = new Object();
    persion.name = "xioaming";
    persion.age = 12;

            document.writeln(persion.name);       
            document.writeln(persion.age);        
        </script>
    </body>
    
  • 对象字面量:用这个可以直接定义对象及其属性。
    <body>
    <script type="text/javascript">
    var persion = {
    name : "xiaoli",
    age : 1
    };
    document.writeln(persion.name);
    document.writeln(persion.age);

        </script>
    </body>
    
    <!-- 注意:
        属性的名称和值时间用冒号分隔(:)
        多个属性之间用逗号分隔(,)
        大括号之后必须用分号结尾(;) -->
    
  • 对象函数:使用上面的方式可以为对象添加变量,也可以为对象添加函数。

    <body>    
        <script type="text/javascript">
            var persion = {
                name : "xiaoli",
                age : 1,
                getSum : function(){
                    return 1+2;
                }
            };
            document.writeln(persion.name);       
            document.writeln(persion.age);        
            document.writeln(persion.getSum());       
      
        </script>
    </body>
    
    <!-- 注意:方法内部使用对象属性时,要使用this关键字 -->
    

6.使用对象

  • 读取和修改对象属性值:一种是直接对象.属性名称,一种是对象["属性名称"]

    <body>    
        <script type="text/javascript">
            var persion = {
                name : "xiaoli",
                age : 1,
                getSum : function(){
                    return 1+2;
                }
            };
            persion.name= "haha";
            persion["name"] = "hehe";
      
            document.writeln(persion.name);       
            document.writeln(persion["name"]);        
        </script>
    </body>
    
  • 枚举对象属性:使用for ...in 语句。

     <body>  
       <script type="text/javascript">
           var persion = {
               name : "xiaoli",
               age : 1,
               getSum : function(){
                   return 1+2;
               }
           };
     
           persion.name= "haha";
           persion["name"] = "hehe";
     
           document.writeln(persion.name);       
           document.writeln(persion["name"]);
           for(var prop in persion){    
                document.writeln("name="+prop+",value="+persion[prop]+"<br>");                           
           }
       </script>
     </body>
    
     <!-- 注意:对象.[变量名]  中括号里面的变量名不需要加双引号 -->
    
  • 增删对象的属性和方法

    注意:
         判断对象中是否存在某属性用:
         var hasName = "name" in persion;
    
    <body>    
        <script type="text/javascript">
            var persion = {
                name : "xiaoli",
             };
      
            <!--增加属性和函数-->
            persion.age = 12;
            persion.getSum = function(){
                return 1+2;
            };
      
            for(var prop in persion){
            document.writeln("name="+prop+",value="+persion[prop]+"<br>");
            }
      
            <!-- 删除属性和函数-->
      
            delete persion.name;
            delete persion["age"];
            delete persion.getSum;
      
            for(var prop in persion){
                    document.writeln("name="+prop+",value="+persion[prop]+"<br>");
            }
        </script>
    </body>
    

7.运算符

运算符 说明
++、-- 前置或后置自增或自减
+、-、*、/、% 加、减、乘、除、求余
<、<=、>、>= 小于、小于等于、大于、大于等于
==、!= 相等、不相等
===、!== 等同、不等同
&&、II 逻辑与、逻辑或
= 赋值
+ 字符串连接
?: 三元运算符
  注意:
  a:== 和 != 比较若类型不同,先偿试转换类型,再作值比较,最后返回值比较结果 。

  b:而 === 和 !== 只有在相同类型下,才会比较其值。

8.显示类型转换

  • 数值转换为字符串:可以使用toString方法
    var str = (123).toString();
方法 说明 返回
toString() 以十进制形式表示数值 字符串
toString(2)
toString(8)
toString(16)
以二、八、十六进制表示数值 字符串
toFixedn() 以小数点后有n为数字的形式表示实数 字符串
toExponential(n) 以指数表示法表示数值,
尾数的小数点前后分别有1位数字和n位数字
字符串
toPrecision(n) 用n个有效数字表示数值 字符串
  • 将字符串转换为数值:使用Number函数。

    var num = Number("123");
    
函数 说明
Number(str)
parseFloat(str)
生成一个整数或实数值
parseInt(str) 生成一个整数值

9.使用数组

  • 注意:
    a:创建数组的时候不需要声明数组中元素的个数,JS数组会自动调整大小以便容纳所有的元素。
    b:不必声明数组所含数据的类型,JS中的素组可以混合包含各种类型的数据。

  • 使用New创建数组

    <body>    
        <script type="text/javascript">
            var array = new Array();
            array[0] = "a";
            array[1] = 12;
            array[2] = false;
        </script>
    </body>
    
  • 使用数组字面量

    <body>    
        <script type="text/javascript">
            var array = ["a",12,false];
        </script>
    </body>
    
  • 枚举数组内容

    <body>    
        <script type="text/javascript">
            var array = new Array();
            array[0] = "a";
            array[1] = 12;
            array[2] = false;
    
            for(var i = 0;i<array.length;i++){
                document.writeln("array["+i+"]="+array[i])
            }
        </script>
    </body>
    
  • 内置的数组方法:这些方法是js对Array对象封装好的直接调用就可以了。

方法 说明 返回
concat(<otherArray>) 将数组和参数所致数组的内容合并成一个新数组 数组
jion(<separator>) 将所有数组的元素连接成一个字符串 字符串
pop() 将数组当做栈使用,删除并返回最后一个元素 对象
push(<item>) 将数组当做栈使用,将制定的数据添加到数组中 void
reverse() 就地反转数组元素的次序 数组
shift() 类似pop,但是操作的是第一个元素 对象
skuce(<start>,<end>) 返回一个子数组 数组
sort() 对数组进行排序 数组
unshift(<item>) 类似朴树,但是新元素插到数组的开头位置 void

10.异常处理

  JS中用trry....catch语句处理错误。
  <body>    
      <script type="text/javascript">
          try{
              var array;
              document.writeln("num="+array[4]);
          }catch(e){
              document.writeln("Error:"+e);
          }finally{
              document.writeln("请检查你的代码");
          }
      </script>
  </body>

11.比较undefined和null值

  JS中有两个特殊的值:undefined和null,在视图读取未赋值的变量或对象没有属性时就是undefined值。

  <body>
      <script type="text/javascript">
           var array = [1,2,3];
           var persion = {
               name:"xiaoming",
           };
           document.writeln("age=" + persion.age);
           document.writeln("num=" + array[4]);
      </script>
  </body>

输出结果:age=undefined num=undefined


  null与undefined略有不同,undefined是在未定义的情况下得到的值。
  null是用于表示已经赋值了一个值但是该值不是一个有效的object、string、number或boolean。
  如果想检查某个属性是否为null或undefined,时需要用!非运算符就可以。
  Undefined类型只有一个值,即undefined。当声明的变量还未被初始化时,变量的默认值为undefined。
  Null类型也只有一个值,即null。null用来表示尚未存在的对象,常用来表示函数企图返回一个不存在的对象。

Web笔记首页目录

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

推荐阅读更多精彩内容