`
isiqi
  • 浏览: 16075279 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

核心JavaScript基础-2(学习笔记)

阅读更多

参考资料:《javascript权威指南第五版》

===============变量==============
1、javaScript是一种弱类型的语言,用var语句即可声明一个变量。
2、如果不用var语句声明而直接给一个变量赋值,那这个变量将被隐式声明为全局变量。
3、如果函数内部用var语句声明了一个与某全局变量同名的变量,则在函数中全局变量被屏蔽了,即使这个变量的定义是在函数的

最后一行。
4、我们可以在for语句中定义变量,如for(var i=0;i<10;i++),在其它的一些语言中,这里的i在退出循环后生命就结束了,但
javascript中,i在包含它的整个函数中可用。

==============运算符=======
1、取模运算符%一般用于整数,但在浮点数中也适用。-4.3%2.1=-0.1。另外,取模运算后的结果的符号和第一个运算数保持一 致。
2、==(相等)与===(完全等同)。对于基本类型,若参与比较的双方类型不同,前者会先转换类型至一致再比较,而后者不

会。注意的是值NaN永远不与任何值等同,需用isNaN()来测试一个值是否NaN。
3、in运算符。如A in B。它用来判断A是否B自己的或继承来的一个属性。A必须是字符串或可以转换成字符串,B必须是对象或者

数组。如果A或B不符合要求则会发生运行时错误,如果A不是B的属性,返回false。
4、instanceof运算符。如A in B。它用来判断A是否B中的一个实例,返回布尔值。A必须是一个对象,B必须是一个对象类的名

字或者说构造函数。如果左边不是对象或右边是对象但不是构造函数,将返回false,如果右边根本不是对象,则产生运行时错

误。
5、逻辑与&&和逻辑或||。如A && B。当A的计算结果是可以转换成false的值,则返回A的计算结果,否则计算B的值返回。

A || B也一样返回相应表达式的计算结果。但在javascript1.0和1.1中,返回值是布尔值。
6、typeof返回任意运算数的类型。但它只能区分运算数是基本类型还是对象,因为对所有对象包括null它都返回object。对基本

类型,它分别返回number、string、boolean。对函数它返回function,对未定义的值,它返回undefined。
7、delete运算符删除指定的对象属性、数组元素或变量。用var语句声明的变量是不可用delete删除的。删除成功时返回true,

不成功时返回false。但如果运算数是一个不存在的东西,也会返回true。
另外,如果运算数是一个引用,delete只会删除引用,而不会删除实际被引用的对象。还有delete操作数组元素时,只是将

素的值设为undefined,而操作属性时是真正删除,用for in将无法再列举出这个属性。
8、void运算符。它总是会舍弃运算数的值而返回undefined。这一特性在javascript:URL中常用到。

=============语句===========
1、函数定义在解析时发生,而变量定义是在运行时。看以下代码:
alert(typeof(a));//显示undefined;因为a还没有定义。
alert(f(4));//显示16,虽然定义的代码写在后面,但在解析时已经定义好了,所以可以找到函数并执行。

var a = 8;//此时定义a
var f = 0;//重写变量f
function f(x){return x*x};
alert(f);//执行到这里时f已被重写,显示0
alert(a);//显示8
2、如果一个函数定义里没有写return语句,则相当于返回undefined。

============对象和数组==========
1、每个对象都有一个constructor属性,属性的值就是这个对象的构造函数。自己创建的所有对象的constructor属性值都是

Object函数。函数和数组也是对象,它们的constructor属性值分别是Function和Array。
2、数组中的元素不一定要一个挨一个的存储,长度为5的数组a,可以只在a[0],a[4]处有值,只有定义了值的格子才会得到空

间。另外,length的值是可写的。如果想删除数组尾部的一些数据,可以将length设短即可。如下代码:
var arr = new Array(1,2,3,4,5,6,7);//定义数组

for(var i=0;i<arr.length;i++)//打印数组,结果为1234567
document.write(arr[i]);
document.write("<br />");

arr.length = 3;//将数组长度设为3
for(i=0;i<arr.length;i++)//再打印数组,结果为123
document.write(arr[i]);
document.write("<br />");

arr.length = 7;//再将长度设回成7
for(i=0;i<arr.length;i++)//再打印数组,结果为123undefinedundefinedundefinedundefined
document.write(arr[i]);
document.write("<br />");
3、常用的数组方法
var arr = new Array(1,2,3,'hello');
arr.join('-');结果为1-2-3-hello。将有值的数组元素转换成字符串并以指定的分隔符将它们联起来,如果不指定,默认是逗号。
arr.reverse();结果为['hello',3,2,1]。在原数组上而不是新建一个数组来颠倒数组元素顺序。
arr.sort();在原数组上而不是新建一个数组来将元素排序,默认是将所有元素转成字符串再按首字母从小到大排序。普通对象转换成字符串后结果是[object Object],取'['参与排序。可以接受一个自定义的函数作为参数来改变排序方式。
arr.concat(4,5);结果为[1,2,3,'hello',4,5]。它能创建并返回新数组,原数组不变。
arr.slice(0,3);结果为[1,2,3]。参数分别指定起始位置和结束位置(结束位置的值不取)。它返回获取到的数组片段。参数可以为负,表示倒数第几个。原数组不变。
arr.splice(1,2,8,9);返回值为[2,3]。它删除并插入元素。前两个参数分别指定要删除的起始位置和元素个数。它取出原数组相应的值给新数组,并删除原数组中相应的值。在两个参数之后的参数就是要插入到原数组中的值,插入的位置由第一个参数指定。此时arr的值为[1,8,9,'hello']。

分享到:
评论

相关推荐

    javascript学习笔记.docx

    2) 一个应用程序出现的每个窗口或框架都对应一个Window对象,而且都为客户端JavaScript代码定义了一个唯一的执行环境。 3) 脚本执行过程是Web浏览器的HTML解析过程的一部分。脚本按照它们的出现顺序执行。 4) 简单的...

    李立超前端JavaScript基础个人总结笔记

    源自于B站up主李立超老师的前端JavaScript基础知识视频课,根据199节视频课的内容,使用Typora笔记软件总结核心知识点,方便前端小白配合老师视频课使用,内含相关概念的定义和配套代码资源,其上传的初衷是为了方便...

    javascript基础语法学习笔记

     [1]ECMAScript由ECMA-262定义,提供核心语言功能(ECMA是欧洲计算机制造商协会)  [2]DOM文档对象模型,提供访问和操作网页内容的方法的接口  [3]BOM浏览器对象模型,提供与浏览器交互的方法的接口  二、引入 ...

    JavaScript高级程序设计学习笔记(一)

    最近为了补js的基础,开坑javascript高程,这书基础部分写得很详细很好读,搭配着MDN进行学习理解。 闲下来的时间记录一下边读边做的笔记,大多是以前编程的时候没注意过的基础知识点。 第一章 JavaScript的完整实现...

    JavaScript 学习笔记之基础中的基础

    ECMAScript(核心) DOM(文档对象模型) BOM(浏览器对象模型) 1.1ECMAScript  ECMAScript是通过ECMA-262标准化的脚本语言,ECMA-262规定语言的:语法、类型、语句、关键字、保留字、操作符、对象 1.2 DOM  ...

    js:javascript核心知识点,es6,7,8,9学习笔记,es6工作总结

    卢珑文JavaScript技术栈 1 JS技术学习路线 打回来 诺言 es6 类 事件循环 节点 npm 节点核心 缓冲 流 http ...2 JS数据结构 ...Javascript基础 内置函数 数组 目的 功能 布尔型 日期 数 串 符号 内置对象

    《Ajax笔记》

    就业班时,就业老师整理的关于 Ajax的面试笔记,里边含有javaScript基础加强, Ajax编程入门,jQuery框架等一些核心资料。 核心内容概述 1.JavaScript加强,涉及到ECMAScript语法、BOM对象、DOM对象以及事件。 2....

    javascript学习基础笔记之DOM对象操作

    javascript是一种基于对象和世界驱动,并且安全性较强的脚本语言。一个完整的javascript实现包括核心(ECMAScript),文档对象模型(DOM)和浏览器对象模型(BOM)

    Front-end-study-notes:顾名思义,前端学习笔记。里面包括的不仅仅是前端。扎根基础,不做浮水之萍

    顾名思义,前端学习笔记。里面包括的不仅仅是前端。 是我学习前端知识的随笔,记录着我的理解。 从2020年5月28日开始在GitHub上写笔记,之前一直是在自己电脑上写笔记。 希望能给大家带来帮助(目前还不是很完善,...

    python核心笔记.pdf

    对于 Python,想必很多朋友还未曾听说,其定义我已在本笔记的第一章给出,这 里我想谈谈我对 Python 的个人理解。在我学习 Python 的过程中,有朋友问我,Python 到底是什么,它主要应用于什么方面,能做什么东西,...

    JavaScript:从基本JavaScript到高级JavaScript的学习

    我们很高兴能够在这里获得JavaScript基础创建的内容。 JavaScript支持大多数网站(包括该网站)上的动态行为。 在本课程中,您将学习入门编码概念,包括数据类型和内置对象,这是所有有抱负的开发人员的基本知识。 ...

    python核心笔记整理pdf版本

    对于 Python,想必很多朋友还未曾听说,其定义我已在本笔记的第一章给出,这 里我想谈谈我对 Python 的个人理解。在我学习 Python 的过程中,有朋友问我,Python 到 底是什么,它主要应用于什么方面,能做什么东西,...

    JavaScriptONLY:简单解释JavaScript核心基础知识资源!

    它旨在为想要深入学习和引用JavaScript概念的任何人提供高质量,写得很好的笔记集。 当您感觉为项目编写更好,更干净的代码,想要进行调试而又不挫败和咒骂JS或真正赞美这种语言的美时,此存储库将是您的理想之选。 ...

    monthly:前端月报,回顾记录当月好文 http

    前端月报前端月报,当月回顾总结,记录当月看到的好文最新资讯优秀资源荟萃Serverless 应用开发指南算法题leetcode题解,记录自己的leetcode解题之路用JavaScript实现的算法和数据...学习笔记-已完结 Koa2进阶学习笔记

    Three.js源码阅读笔记(基础的核心Core对象)

    这是第一篇笔记,先从最基础的核心(Core)对象开始。 Core::Vector2 该构造函数用来创建一个表示二维向量的对象 代码如下: THREE.Vector2 = function ( x, y ) { this.x = x || 0; this.y = y || 0; }

    前端面试八股文-超详细的前端基础知识的应用与技巧

    内容概要:本资源提供了一系列精心挑选的前端面试题,旨在帮助广大前端开发者系统复习和巩固基础知识,深入理解前端技术栈,以及提升解决实际问题的能力。题目涵盖了HTML、CSS、...可以在学习过程中进行笔记整理

    asp.net知识库

    VS2005 ASP.NET本地化学习笔记&感受 在自定义Server Control中捆绑JS文件 Step by Step 深度解析Asp.Net2.0中的Callback机制 使用 Web 标准生成 ASP.NET 2.0 Web 站点 ASP.NET 2.0基于SQLSERVER 2005的aspnetdb.mdf...

    review-notes:团队分享学习、复盘笔记资料共享。Java、Scala、Flink..

    该项目用于知识分享。更好的阅读体验,访问 。主要使用 进行知识分享学习,欢迎 提交反馈 。...参考 贡献说明贡献者liming199323-Z.limingScala 基础-语言核心特性VVvista-W.tingting数据结构LicenseMIT License

    JavaScript高级程序设计(第3版)学习笔记10 再访js对象

    在ECMAScript中,两个核心主题就是对象与函数,而这两个主题也有些互相缠绕的,在前面几个博文中大略的过了一遍函数相关的基础知识,这篇文章再回到对象主题上来

Global site tag (gtag.js) - Google Analytics