本文是笔者在看廖雪峰老师的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. JVM内存管理

    前几天公司的郑大晔校上,XXX同事做了JVM的Session,于是趁端午节放假的功夫,研究了一些JVM相关的知识. 在Java生态系统中,JVM占据至关重要的作用,就像一个适配器,它向编程语言(主要是 ...

  2. 使用Astah制作UML时序图

    Astah制作UML图--详解 时序图的制作 开篇语: 本文为光荣之路原创文章,欢迎转载,但请注明出处. 做测试的难免看到开发画出各种设计图,都很羡慕,比如: 帅么,漂亮么,其实我们测试人员也可以轻松 ...

  3. html标签快速转换思想方法

    function htmlencode(s){ var div = document.createElement('div'); div.appendChild(document.createText ...

  4. <<Windows via C/C++>>学习笔记 —— 线程优先级【转】

    转自:http://www.cnblogs.com/wz19860913/archive/2008/08/04/1259807.html 每个线程都有一个“优先级”,范围是0-31,0为最低优先级,3 ...

  5. sublime text3 C语言环境配置

    { "cmd": ["gcc", "-W", "-Wall", "-Werror","${ ...

  6. 关于去除Eclipse对JavaScript的验证

    关于去除Eclipse对JavaScript的验证 在我们使用大量JavaScript作为一些UI或其他组件来使用时,很多情况下,明明引用的这些JavaScript是可以正常使用的,但Eclipse却 ...

  7. Upload java coed in Ubuntu(在Linux 16上,上传代码)

    指令如下:(按照如下指令顺序执行即可) 1.git status  (注释:可以查看哪些代码改动了) 2.git add .     (注意:不要漏掉add后面的" . ",将本地 ...

  8. 闲的写写SQL

    /* 新增 */ Create Proc AddData ( ), ), @Values nvarchar(max) ) as declare @Sql nvarchar(max) declare @ ...

  9. 用Python生成组织机构代码,附源码

    #!/usr/bin/python import random def haoma(): ww = [3,7,9,10,5,8,4,2]#suan fa yin zi cc = [] dd=0 for ...

  10. Xcode6 ADD Copy Files Build Phase 是灰色的

    在学习的怎样写frameWork的时候,查看一个教程How to Create a Framework for iOS  [一个中文翻译 创建自己的framework] 其中一个步骤就是添加一个Cop ...