下列二维数组定义正确的是的输出地址是多少位二进制下列二维数组定义正确的是成的?

是世界上最流行的编程语言之一 是一个脚本语言, 通过解释器运行

编写的代码是保存在文件中的, 也就是存储在硬盘(外存上).

双击 .html 文件浏览器(应用程序)就会读取文件, 把文件内容加载到内存中(数据流向:
硬盘 => 内存) 浏览器会解析用户编写的代码, 把代码翻译成二进制的,
能让计算机识别的指令(解释器的工作) 得到的二进制指令会被 CPU 加载并执行(数据流向:

浏览器分成渲染引擎 + JS 引擎.

JS 引擎逐行读取 JS 代码内容, 然后解析成二进制指令, 再执行.

DOM: 页面文档对象模型, 对页面中的元素进行操作

BOM: 浏览器对象模型, 对浏览器窗口进行操作

光有 JS 语法, 只能写一些基础的逻辑流程.

但是要想完成更复杂的任务, 完成和浏览器以及页面的交互, 那么久需要 DOM API 和 BOM
API. 这主要指在浏览器端运行的 JS. 如果是运行在服务端的 JS , 则需要使用 node.js

这是一套 “标准”, 无论是啥样的 JS 引擎都要遵守这个标准来实现.

啥叫标准? 车同轨, 书同文. 秦始皇最大的贡献之一, 就是制定了一套标准.
三流公司做产品, 一流公司做标准.

直接嵌入到 html 元素内部

注意, JS 中字符串常量可以使用单引号表示, 也可以 使用双引号表示.

HTML 中推荐使用双引号, JS 中推荐使用单引号.

写到单独的 .js 文件中

注意, 这种情况下 script 标签中间不能写代码. 必须空着(写了代码也不会执行).

单行注释 // [建议使用]

多行注释不能嵌套. 形如这种代码就会报错

弹出一个警示对话框, 输出结果

在控制台打印一个日志(供程序员看)

这样的输出一般不是给普通用户看的, 而是程序员来看的.

日志是程序员调试程序的重要手段

去医院看病, 医生会让患者做各种检查, 血常规, 尿常规, B超, CT等…
此时得到一堆检测结果. 这些 结果普通人看不懂, 但是医生能看懂,
并且医生要通过这些信息来诊断病情.

这些检测结果就是医生的 “日志”

PS: 相比于医生来说, 程序猿多一个终极大招, “重启下试试”.

. 表示取对象中的某个属性或者方法. 可以直观理解成 “的” console.log 就可以理解成:
使用 “控制台” 对象 “的” log 方法.

但是在基础语法层面上还是有一些相似之处的. 有了 Java 的基础很容易理解 JavaScript

创建变量(变量定义/变量声明/变量初始化)

var 是 JS 中的关键字, 表示这是一个变量.

= 在 JS 中表示 “赋值”, 相当于把数据放到内存的盒子中. = 两侧建议有一个空格
每个语句最后带有一个 ; 结尾. JS 中可以省略 ; 但是建议还是加上.

注意, 此处的 ; 为英文分号. JS 中所有的标点都是英文标点. 初始化的值如果是字符串,
那么就要使用单引号或者双引号引起来.

初始化的值如果是数字, 那么直接赋值即可. 使用变量

为啥动漫中的角色都是要先喊出技能名字再真正释放技能?

就是因为变量要先声明才能使用.

代码示例: 弹框提示用户输入信息, 再弹框显示.

也可以把三个输出内容合并成一次弹框

用法上的差异此处暂时不讨论.

  1. JS 的变量类型是程序运行过程中才确定的(运行到 = 语句才会确定类型)

  2. 随着程序运行, 变量的类型可能会发生改变.

这一点和 C Java 这种静态类型语言差异较大.

C, C++, Java, Go 等语言是静态类型语言. 一个变量在创建的时候类型就确定了,
不能在运行时发生 改变.

如果尝试改变, 就会直接编译报错.

JS 中内置的几种类型

JS 中不区分整数和浮点数, 统一都使用 “数字类型” 来表示.

计算机中都是使用二进制来表示数据, 而人平时都是使用十进制.
因为二进制在使用过程中不太方便(01太多会看花眼).
所以在日常使用二进制数字时往往使用 八进制 和 十六进制 来表示二进制数字.

一个八进制数字对应三个二进制数字 一个十六进制数字对应四个二进制数字.
(两个十六进制数字就是一个字节)

各种进制之间的转换, 不需要手工计算, 直接使用计算器即可.

Infinity: 无穷大, 大于任何数字. 表示数字已经超过了 JS 能表示的范围.

表示当前的结果不是一个数字.

3. 可以使用 isNaN 函数判定是不是一个非数字.

字符串字面值需要使用引号引起来, 单引号双引号均可.

如果字符串中本来已经包含引号咋办?

有些字符不方便直接输入, 于是要通过一些特殊方式来表示.

注意, 数字和字符串也可以进行拼接

注意, 要认准相加的变量到底是字符串还是数字

表示 “真” 和 “假”

boolean 原本是数学中的概念 (布尔代数).

在计算机中 boolean 意义重大, 往往要搭配条件/循环完成逻辑判断.

这样的操作其实是不科学的. 实际开发中不应该这么写.

undefined 和字符串进行相加, 结果进行字符串拼接

null 表示当前的变量是一个 “空值”.

(相当于有一个空的盒子)

undefined 表示当前的变量未定义. (相当于连盒子都没有)

JavaScript 中的运算符和 Java 用法基本相同. 此处不做详细介绍了.

赋值运算符 & 复合赋值运算符

用于计算多个 boolean 表达式的值.

条件语句 if 语句 基本语法格式

代码示例1: 判定一个数字是奇数还是偶数

代码示例2: 判定一个数字是正数还是负数

代码示例3: 判定某一年份是否是闰年

条件为真, 返回表达式1 的值. 条件为假, 返回表达式2 的值.

注意, 三元表达式的优先级是比较低的.

用户输入一个整数, 提示今天是星期几

条件为 true, 执行循环体代码. 条件为 false, 直接结束循环

代码示例2: 计算 5 的阶乘

吃五个李子, 发现第三个李子里有一只虫子, 于是扔掉这个, 继续吃下一个李子.

吃五个李子, 发现第三个李子里有半个虫子, 于是剩下的也不吃了.

表达式1: 用于初始化循环变量. 表达式2: 循环条件

表达式3: 更新循环变量.

先执行表达式1, 初始化循环变量 再执行表达式2, 判定循环条件 如果条件为 false,
结束循环 如果条件为 true, 则执行循环体代码. 执行表达式3 更新循环变量

代码示例2: 计算 5 的阶乘

使用 new 关键字创建

使用字面量方式创建 [常用]

注意: JS 的数组不要求元素是相同类型.

使用下标的方式访问数组元素(从 0 开始)

如果下标超出范围读取元素, 则结果为 undefined

注意: 不要给数组名直接赋值, 此时数组中的所有元素都没了.

相当于本来 arr 是一个数组, 重新赋值后变成字符串了.

相当于在末尾新增元素. 新增的元素默认值为 undefined

如果下标超出范围赋值元素, 则会给指定位置插入新元素

代码示例: 给定一个数组, 把数组中的奇数放到一个 newArr 中.

目前咱们已经用到了数组中的一些属性和方法.

函数定义并不会执行函数体内容, 必须要调用才会执行. 调用几次就会执行几次.

调用函数的时候进入函数内部执行, 函数结束时回到调用位置继续执行.
可以借助调试器来观察. 函数的定义和调用的先后顺序没有要求. (这一点和变量不同,
变量必须先定义再使用)

实参和形参之间的个数可以不匹配. 但是实际开发一般要求形参和实参个数要匹配

  1. 如果实参个数比形参个数多, 则多出的参数不参与函数运算

  2. 如果实参个数比形参个数少, 则此时多出来的形参值为 undefined

JS 的函数传参比较灵活, 这一点和其他语言差别较大. 事实上这种灵活性往往不是好事.

另外一种函数的定义方式

此时形如 function() { } 这样的写法定义了一个匿名函数,
然后将这个匿名函数用一个变量来表示.

后面就可以通过这个 add 变量来调用函数了.

JS 中函数是一等公民, 可以用变量保存, 也可以作为其他函数的参数或者返回值.

某个标识符名字在代码中的有效范围. 在 ES6 标准之前, 作用域主要分成两个

全局作用域: 在整个 script 标签中, 或者单独的 js 文件中生效.
局部作用域/函数作用域: 在函数内部生效.

创建变量时如果不写 var, 则得到一个全局变量.

另外, 很多语言的局部变量作用域是按照代码块(大括号)来划分的, JS 在 ES6

函数可以定义在函数内部 内层函数可以访问外层函数的局部变量.

内部函数可以访问外部函数的变量. 采取的是链式查找的方式. 从内到外依次进行查找.

对象是指一个具体的事物.

“电脑” 不是对象, 而是一个泛指的类别. 而 “我的联想笔记本” 就是一个对象. 在 JS 中,
字符串, 数值, 数组, 函数都是对象.

每个对象中包含若干的属性和方法.

属性: 事物的特征. 方法: 事物的行为.

例如, 你有一个女票. 她的身高体重三围这些都是属性. 她的唱歌, 跳舞, 暖床都是方法.

对象需要保存的属性有多个, 虽然数组也能用于保存多个数据, 但是不够好.

但是这种情况下到底 175 和 170 谁表示身高, 谁表示体重, 就容易分不清

JavaScript 的对象 和 Java 的对象概念上基本一致. 只是具体的语法表项形式差别较大.

1. 使用 字面量 创建对象 [常用]

使用 { } 创建对象

使用 { } 创建对象 属性和方法使用键值对的形式来组织.

键值对之间使用 , 分割. 最后一个属性后面的 , 可有可无 键和值之间使用 : 分割.

方法的值是一个匿名函数.

使用对象的属性和方法:

注意, 使用 { } 创建的对象也可以随时使用 这样的方式来新增属性.

3. 使用 构造函数 创建对象

前面的创建对象方式只能创建一个对象. 而使用构造函数可以很方便 的创建 多个对象.
例如: 创建几个猫咪对象

此时写起来就比较麻烦. 使用构造函数可以把相同的属性和方法的创建提取出来,

在构造函数内部使用 this 关键字来表示当前正在构建的对象.
构造函数的函数名首字母一般是大写的. 构造函数的函数名可以是名词.

创建对象的时候必须使用 new 关键字.

使用构造函数重新创建猫咪对象

1. 先在内存中创建一个空的对象 { }

2. this 指向刚才的空对象(将上一步的对象作为 this 的上下文)

3. 执行构造函数的代码, 给对象创建属性和方法

对象其实就是 “属性” + “方法” .
类相当于把一些具有共性的对象的属性和方法单独提取了出来, 相当于一个 “月饼模子” 在
JavaScript 中的 “构造函数” 也能起到类似的效果.

而且即使不是用构造函数, 也可以随时的通过 { } 的方式指定出一些对象

在 ES6 中也引入了 class 关键字, 就能按照类似于 Java 的方式创建类和对象了.

JavaScript 中的函数是 “一等公民”, 和普通的变量一样. 存储了函数的变量能够通过 ( )

对象中的属性都可以被外界随意访问.

继承本质就是 “让两个对象建立关联”.
或者说是让一个对象能够重用另一个对象的属性/方法. JavaScript 中使用 “原型”

方法. 通过 proto 属性来建立这种关联关系 (proto 翻译作 “原型”)

当eat方法被调用的时候,先在自己的方法列表中寻找,
如果找不到,就去找原型中的方法, 如果原型 中找不到,
就去原型的原型中去寻找… 最后找到Object那里, 如果还找不到,

关于原型链的内容比较复杂, 此处不做过多讨论

多态的本质在于 “程序猿不必关注具体的类型, 就能使用其中的某个方法”.

C++ / Java 等静态类型的语言对于类型的约束和校验比较严格. 因此通过 子类继承父类,
并重写父类的方 法的方式 来实现多态的效果.

程序猿在使用对象的某个方法的时候本身也不需要对对象的 类型做出明确区分.
因此并不需要在语法层面上支持多态.

然后我们可以写一个方法:

add 对于 list 这个参数的类型本身就没有任何限制. 只需要 list 这个对象有 add
方法即可. 就不必 像 Java 那样先继承再重写绕一个圈子.

本文介绍了《王道》数据结构笔记整理2022相关内容,对大家解决问题具有一定的参考价值,需要的朋友们一起学习吧!



    这篇关于《王道》数据结构笔记整理2022的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

Scala是一门多范式的编程语言,一种类似java的编程语言 ,设计初衷是实现可伸缩的语言 、并集成面向对象编程和函数式编程的各种特性。Spark就是使用Scala编写的。因此为了更好的学习大数据开发, 需要掌握Scala这门语言,当然Spark的兴起,也带动Scala语言的发展!官方文档:

二、Scala发展历史

  • 马丁·奥德斯基是编译器及编程的狂热爱好者,长时间的编程之后,希望发明一种语言,能够让写程序这样的基础工作变得高效,简单。所以当接触到JAVA语言后,对JAVA这门便携式,运行在网络,且存在垃圾回收的语言产生了极大的兴趣,所以决定将函数式编程语言的特点融合到JAVA中,由此发明了两种语言(Pizza

Pizza和Scala极大地推动了Java编程语言的发展。

    单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果

    // 单词计数:将集合中出现的相同的单词,进行计数,取计数排名前三的结果 // 1) 将每一个字符串转换成一个一个单词 // 2) 将相同的单词放置在一起 // 3) 对相同的单词进行计数 // 4) 对计数完成后的结果进行排序(降序) // 5) 对排序后的结果取前 3 名

    // 第一种方式(不通用) //在 map 中,如果传进来什么就返回什么,不要用_省略

    要求掌握必要的 Scala 开发环境搭建技能。

    掌握高阶函数、匿名函数、函数柯里化、闭包、函数参数以及函数至简原则。

    掌握 Scala 与 Java 继承方面的区别、单例对象(伴生对象)、构造方法、特质的用法及功能。

    掌握常用集合的使用、集合常用的计算函数

    到此为此,Scala的基础就到这里了,小伙伴如果有什么疑问的话,欢迎给我留言~

我要回帖

更多关于 下列二维数组定义正确的是 的文章

 

随机推荐