本文是笔者在看廖雪峰老师的JavaScript教程时的总结
一、加载 JavaScript
          1.直接在html语句中写入JavaScript语句
          2.在html中导入含有JavaScript语句的js文件
 
二、 JavaScript特点
          1、JavaScript不区分整数和浮点数,统一用Number表示
                    特殊:NaN; // NaN表示Not a Number,当无法计算结果时用NaN表示
                              Infinity; // Infinity表示无限大,当数值超过了JavaScript的Number所能表示的最大值时,就表                                  
                         示为Infinity                       
          2、JavaScript做等于比较的时候两种 “==” 和 “===”
                    区别:“==”比较的时候,会自动转换数据类型再比较。false == 0这个比较的结果是True
                              “===”不自动转换,如果数据类型不一致,返回false,如果一致再进行比较
          3、 NaN这个特殊的Number与所有其他值都不相等,包括它自己 。
                         NaN === NaN  //false
                          唯一能判断NaN的方法是通过isNaN()函数:     
             isNaN(NaN); // true  
     4.JavaScript使用null表示空
     5.数组 JavaScript的数组可以包括任意数据类型
                         定义数组的两种方法
                              1.[1, 2, 3.14, 'Hello', null, true];
                              2.new Array(1, 2, 3); // 创建了数组[1, 2, 3]
          6.对象   JavaScript的对象是一组由键-值组成的无序集合
          7.变量  JavaScript中 变量不仅可以是数字,还可以是任意数据类型。统一由var定义
                    变量名是大小写英文、数字、$_的组合,且不能用数字开
                     同一个变量可以反复赋值,而且可以是不同类型的变量
                    ps:关于静态语言和动态语言
                               变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言
                              C C++ JAVA 都是静态语言
                              python JavaScript都是动态语言
     8.关于 strict模式
               JavaScript可以不通过var定义变量,可以直接使用一个未定义的变量,但如果直接使用,这个变量直接被定义为全局可用,这样如果同一个页面的不同JS文件都使用了未定义的同名的变量,将会混乱。如果一个变量是通过var定义后再使用的,这个变量就被限制在声明它的函数体内。同名变量在不同函数体内互不影响。
               所以strict模式应景而出。在JavaScript代码第一行加上
                              'use strict';
               这样就启用了strict模式,此模式下变量强制用var声明后使用,未经声明直接使用将会报错
 
三、 字符串
          var name = 'hzp'
          1.转义 \
          2.多行字符串‘    ’
          3.连接字符串 1.使用+号
                                   var test = name + 'cool'
                            2.模板字符串
                                   var name ='hzp'
                                   var test = `${name} cool`    此时的引号非大众引号  键盘第二排引号
          
          4.字符串常见操作
               var s ='hello WORLD'
                    获取单个字符  s[0]....但是字符串不可变,对字符串某个索引赋值,不会有任何报错,也不会有任何效果
                    s.length; 获取长度,没有括号
                四个字符串函数
                    1.s.toUpperCase()   小写字母转大写字母  返回新字符串
                    2.s.toLowerCase()     和上面相反
                    3.s.indexOf('WORLD')               返回搜索的子字符串在母字符串的位置此时返回7,搜索不到返回-1
                    4.s.substring(4,7)                          返回指定索引区间的子串
 
四、数组
          .var arr = [1, 2, 3.14, 'Hello', null, true];
          1.JavaScript的数组可以包含任意数据类型,并通过索引来访问每个元素
          2.取长度 arr.length
                    注意:1.直接给数组length属性赋值会导致数组大小的变化
                                        如果赋的值比之前大,后面会增加undefined
                                             如果赋的值比之前小,会相应从后面丢到值
          3.数组可以通过索引对其赋值,如果索引大小超过数组自身长度也会赋值,中间差值通过undefined填补
          so : 不要随便修改数组长度,访问索引时要确保索引不会越界
          4.十一个数组函数
               1.indexOf(3.14)    查找3.14,返回对应的索引
               2.slice(0,3)    对应字符串的substring(),返回从索引0截取到索引2的新字符串
               3.pop()和push()    pop从数组末尾删除一个元素,并返回删除的元素。push(),向末尾增加一或多个元素,返回此数组的长度
               4.shift()和unshift()     shift  ....头部.....................................................unshift()........头部........................................................
               5.sort()    对数组进行排序,直接排序本身
               6.reverse()   对数组进行反转,直接反转本身
               7.splice(2,3.'a','b')  在数组索引为2的位置删除三个元素,增加 a b 两个元素。并返回删除的元素
                8.concat()        数组与数组连接,返回一个新数组
                9.join()         arr.join('-') 。将arr数组的元素通过'-'连接组成一个字符串  
 
五、对象
               var xiaoming = {
                       name: '小明',
                        age:18
               };
            JavaScript的对象是一种无序的集合数据类型,它由一或多个键值对组成  
            访问属性是通过.操作符
            如果属性名包含特殊字符,就必须用''括起来, 访问这个属性也无法使用.操作符,必须用['xxx']来访问
             如果访问一个不存在的属性,返回undefine
               JavaScript的对象是动态类型,so
                         delete xiaoming.age;删除age属性
                         xiaoming.sex  = 'boy'  增加sex属性
            检测某一个对象是否含有某个属性  通过‘in’(继承的属性也能检测出来)。要加‘’
                         ‘name’ in xiaoming           返回true
                         'sex' in xiaoming       返回true
                         'toString' in xiaoming 返回true
                           如果检测的不想包括继承的属性,使用 hasOwnProperty()方法
              xiaoming.hasOwnProperty('toString')  返回false
                              xiaoming.hasOwnProperty('name')       返回true
               
 
 
 
 
摘取文章http://blog.csdn.net/wang171838/article/details/8554305
 
 
关于 == 和 ===:

JavaScript支持“=”、“==”和“===”运算符。你应当理解这些(赋值、相等、恒等)运算符之间的区别,并在编码过程中小心使用。

JavaScript对象的比较是引用的比较,而不是值的比较。对象和其本身是相等的,但和其他任何对象都不相等。如果两个不同的对象具有相同数量的属性,相同的属性名和值,它们依然是不相等的。相应位置的数组元素是相等的两个数组也是不相等的。

严格相等运算符“===”首先计算其操作数的值,然后比较这两个值,比较过程没有任何类型转换:

  • 如果两个值类型不相同,则它们不相等。
  • 如果两个值都是null或者都是undefined,则它们不相等。
  • 如果两个值都是布尔值true或false,则它们相等。
  • 如果其中一个值是NaN,或者两个两个值都是NaN,则它们不相等。NaN和其他任何值都是不相等的,包括它本身!!!通过x!==x来判断x是否为NaN,只有在x为NaN的时候,这个表达式的值才为true。
  • 如果两个值为数字,且数值相等,则它们相等。如果一个为0,另一个为-0,则它们同样相等。
  • 如果两个值为字符串,且所含的对应位上的16位数完全相等,则它们相等。如果它们的长度或内容不同,则它们不等。两个字符串可能含义完全一样且所显示出手字符也一样,但具有不同编码的16位值。JavaScript并不对Unicode进行标准化的转换,因此像这样的字符串通过"==="和"=="运算符的比较结果也不相等。
  • 如果两个引用值同一个对象、数组或函数,则它们是相等的。如果指向不同的对象,则它们是不等的。尽管两个对象具有完全一样的属性。

相等运算符“==”和恒等运算符相似,但相等运算符的比较并不严格。如果两个操作数不是同一类型,那么相等运算符会尝试一些类型转换,然后进行比较:

  • 如果两个操作数的类型相同,则和上文所述的严格相等的比较规则一样。如果严格相等,那么比较结果为相等。如果它们不严格相等,则比较结果为不相等。
  • 如果两个操作数类型不同,“==”相等操作符也可能会认为它们相等。检测相等将会遵守如下规则和类型转换:
  1. 如果一个值是null,另一个是undefined,则它们相等。
  2. 如果一个值是数字,另一个是字符串,先将字符串转换为数字,然后使用转换后的值比较。
  3. 如果其中一个值是true,则将其转换为1再进行比较。如果其中一个值是false,则将基转换为0再进行比较。
  4. 如果一个值是对象,另一个值是数字或字符串,则将对象转换为原始值,然后再进行比较。对象通过toString()方法或valueOf()方法转换为原始值。JavaScript核心的内置类首先尝试使用valueOf(),再尝试使用toString(),除了日期类,日期类只使用toString()转换。那些不是JavaScript语言核心中的对象则通过各自的实现中定义的方法转换为原始值。
  5. 其他不同类型之间的比较均不相等.
          
          
 
                         
 

初始JavaScript的更多相关文章

  1. JavaScript概述-第1章

    目录 初始JavaScript 学会使用编辑工具 如何引入脚本代码 常用语句 常见浏览器兼容性问题 了解前端开发技术JavaScript,JavaScript的发展,JavaScript特点,Java ...

  2. JavaScript——基础知识,开始我们的js编程之旅吧!

    JavaScript基础第01天 1. 编程语言 编程语言: 可以通过类似于人类语言的"语言"来控制计算机,让计算机为我们做事情,这样的语言就叫做编程语言(Programming ...

  3. JavaScript基础语法资料

    JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...

  4. JavaScript基础第01天笔记

    JavaScript基础第01天 1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的 ...

  5. 2021年3月-第03阶段-前端基础-JavaScript基础语法-JavaScript基础第01天

    1 - 编程语言 1.1 编程 编程: 就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到结果的过程. 计算机程序: 就是计算机所执行的一系列的指令集合,而程序全部都是用我们所掌 ...

  6. Google 地图 API V3 之事件

    Google官方教程: Google 地图 API V3 使用入门 Google 地图 API V3 针对移动设备进行开发 Google 地图 API V3 之事件 Google 地图 API V3 ...

  7. JS起源

    一.初始JavaScript Mosaic是互联网历史上第一个普遍使用和显示图片的浏览器1993年问世. 后来由于商标权转让,原本的开发团队又开发了Netscape Navigetor网景浏览器,也是 ...

  8. JavaScript中的直接量与初始器的区别

    很多代码优化及公司规范都会提到 写对象不应该 var obj = new Object() 而应该 var obj = {} 写数组不应该 var arr = new Array() 而应该 var ...

  9. JAVAScript对象及初始面向对象

              javaScript对象及初始面向对象 1:内置对象 例:Date String Array 类等... 2:自定义对象 方法1:var newObj=new Object(); ...

随机推荐

  1. Lucene热词统计

    1.建立搜索表 ID KeyWords DT 搜索一次保存一次,id才用guid提高效率 /// <summary> /// 搜索数据 /// </summary> /// & ...

  2. [To do]Appx Package installed, can't start at first time

    When installed partition tool & mkrcvcd as windows store app. it can't start at first time. the ...

  3. href="javascript:function()" 和onclick的区别

    href='javascript:function()'和onclick能起到同样的效果,一般来说,如果要调用脚本还是在onclick事件里面写代码,而不推荐在href='javascript:fun ...

  4. 【转】SVN添加文件时的错误处理:...\conf\svnserve.conf:12: Option expected

    转载地址:http://www.linuxidc.com/Linux/2014-09/106683.htm 安装完SVN服务器,添加完用户权限后,准备将本地的项目add到服务器上时,报"C: ...

  5. 移动APP的开发需求分析

    一.项目概况 项目名称为上海地铁游.本项目是以上海地铁为线索,开发的一个移动APP.主要目的是帮助用户实现根据当前位置选择最方便的地铁旅游点和旅游推荐,方便出行,让更多人可以借助地铁的便利去认识和体验 ...

  6. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  7. Linux术语全称

    bin = BINaries (binary) /dev = devices /etc = ETCetera etcetera附加的人, 附加物, 以及其它, 等等 /lib = LIBrary /p ...

  8. MySQL显示中文

    http://www.cnblogs.com/livingintruth/p/3433259.html 这两天在学习webpy,把webpy的一个blog例子扒下来学习一下,默认创建的table当存入 ...

  9. ma60笔记

    60日均线是股价的生命线,跌破生命线就有一定的下跌空间.大 盘指数也有这种规律,当指数跌破60日平均线后,意味着大盘有一定的下跌空间.大盘指数是由所有个股价格加权统计后产生的,而个股价格却有很大的差异 ...

  10. Python3基础 给一起列表起两个名字

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...