初始JavaScript

时间:2022-09-12 17:34:59
本文是笔者在看廖雪峰老师的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. Google 地图 API V3 之事件

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

  5. JS起源

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

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

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

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

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

  8. JavaScript中:地址引用的特性,导致静态初始值被修改

    问题分类 JavaScript,值引用,地址引用 问题描述 开发过程中,服务端将静态配置数据从mysql数据库中读取到内存中,方便调用. 在实现流派功能时,需从数据库中读取流派种类数据到内存中,由于其 ...

  9. JavaScript基础初始时期分支(018)

    Init-Time Branching初始时期分支是一种用做优化的模式.如果某些条件在程序启动后就不再改变,那么我们就只需要在初始时期检查一次就可以了,而不是在每次 需要用到这些条件的时候都检查一次. ...

随机推荐

  1. img标签src=""和background-image:url();引发两次请求页面bug

      img标签src=""和background-image:url();引发两次请求页面bug 具体原因是,在img 对象的src 属性是空字符串("")的时 ...

  2. C# 3.0 其他XML技术

    使用XmlReader枚举结点: <?xml version="1.0" encoding="utf-8" standalone="yes&qu ...

  3. Python脚本调用C&num;代码数据交互示例(hello world)

    原地址: http://www.djangochina.cn/forum.php?mod=viewthread&tid=247 随着项目的逐渐收尾, 对IronPython脚本也越来越熟悉,这 ...

  4. Mysql中Insert into xxx on duplicate key update问题

    要点:Insert into xxx on duplicate key update可以在唯一索引重复的情况下,进行更新操作.           (1) 插入里边的字段应该只有一个 唯一索引:   ...

  5. c&plus;&plus; 静态函数

    //对象与对象之间的成员变量是相互独立的.要想共用数据,则需要使用静态成员或静态方法 //#只要在类中声明静态成员变量,即使不定义对象,也可以为静态成员变量分配空间,进而可以使用静态成员变量.(因为静 ...

  6. 一:Web

    一:Web介绍 1.Web:网页,网络 2.Web应用:运行在网络上的应用程序 3.网络应用程序分类:C/S B/S C/S 客服端(client)/服务器(server) 典型应用:QQ,YY B/ ...

  7. &lbrack;转&rsqb;ASP&period;NET Web API对OData的支持

    http://www.cnblogs.com/shanyou/archive/2013/06/11/3131583.html 在SOA的世界中,最重要的一个概念就是契约(contract).在云计算的 ...

  8. 【SHOI2008】堵塞的交通

    题面 题解 这里提供几种不用脑子的算法(当然是离线的): $\text{LCT}$ 记下每条边的删除时间,用$\text{LCT}$维护最大生成树,每次加进一条边时,跟原来那条链上的做比较,删除那条删 ...

  9. Kotlint集合简单总结

    1.数组操作 var testArray = Array<>("s","ss")或者 = arrayOf("s","s ...

  10. 洛谷 P2258 子矩阵

    题目描述 给出如下定义: 子矩阵:从一个矩阵当中选取某些行和某些列交叉位置所组成的新矩阵(保持行与列的相对顺序)被称为原矩阵的一个子矩阵. 例如,下面左图中选取第2.4行和第2.4.5列交叉位置的元素 ...