计算机组成简介、JS基础(变量、数据类型、运算符)+算法每日练习

计算机语言指用于人和计算机之间通讯的语言,它是人与计算机之间传递信息的媒介。

翻译器可以将我们编写的源代码转换成机器语言,这也被称为二进制化。

编程语言有较强的逻辑性和行为能力,具有主动性;标记语言不用于向计算机发出指令,常用于格式化和连接。标记语言的存在是用来被读取,他是被动的。计算机只认识机器语言。

计算机基础:硬件:输入设备(鼠标、键盘等)、输出设备(显示屏、打印机)、CPU(负责处理数据与运算)、硬盘、内存(负责存储数据,硬盘永久存储数据,内存暂时存储数据);

软件:系统软件(windows、linux、macOS)、应用软件(浏览器、QQ、VSCode、)。

数据的存储:

  1. 计算机内部使用二进制0和1来表示数据
  2. 所有数据,包括文件、图片等最终都是以二进制数据形式存放在硬盘里面。
  3. 所有程序,包括操作系统,本质都是各种数据,也以二进制的形式存放在硬盘中。平时我们所说的安装软件就是把程序文件复制到硬盘中。
  4. 硬盘、内存都是保存的二进制数据。

程序的运行:

  1. 打开某个程序时,先从硬盘中把程序的代码加载到内存中
  2. CPU执行内存中的程序

注意:CPU执行速度很快,如果直接从硬盘中读取数据,会浪费cpu的性能(内存是电,硬盘是机械)。

JavaScript是一种运行在客户端的脚本语言(Script是脚本的语言)。

脚本语言:不需要编译,运行过程中有js解释器(js引擎)来逐行解释并执行

现在也可以基于Node.js技术进行服务器端编程。

作用:表单动态校验(密码强度检测也是最初设计的目的)、网页特效、服务端开发、桌面程序、App、控制硬件-物联网、游戏开发。

HTML/CSS/JS关系:骨架、衣服、行为。

浏览器执行JS:

  1. 渲染引擎:用来解析HTML与CSS,俗称内核,比如chrome浏览器内核的blink,老版本的webkit
  2. JS引擎:也称JS解释器。用来读取网页的JavaScript,对其处理后的运行,比如chrome浏览器的v8.

注意:浏览器本身并不会执行js代码,而是通过内置JavaScript引擎来执行JS代码。JS引擎执行代码时逐行解释每一句代码(转换成机器语言),然后有计算机去执行,所以JavaScript语言归为脚本语言,会逐行解释执行(翻译一句执行一句)。

JS组成:JavaScript语法(ECMAScript)、DOM(页面文档对象模型)、BOM(浏览器对象模型)。

ECMAScript规定了JS的编程语法和基础核心知识,是所有浏览器厂商共同遵守的一套JS语法工业标准。

DOM:文档对象是W3C组织推荐的处理可扩展标记语言的标准编程接口;通过DOM提供的接口可以对页面上的各种元素进行操作(大小位置、颜色)。

BOM:浏览器对象模型,它提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。通过BOM可以操作浏览器窗口,比如弹出窗、控制浏览器跳转、获取分辨率等等。

JS有三种书写格式:行内、内嵌和外部。

行内式JS:以将单行或少量代码写在HTML标签的时间属性中(以on开头的属性),如:onclick。注意单引号的使用:在HTML中我们推荐使用双引号,JS中我们推荐使用单引号

可读性差,在html中编写大量代码时不方便1阅读。

引号易错,引用多层嵌套匹配时,非常容易弄混

特殊情况下使用。

内嵌式JS

    <script>

         alert('沙漠骆驼');

    </script>

可以将多行JS代码写到<script>标签中

内嵌JS是学习时常用的方法。

外部JS文件:  

 <script src="./my.js">

</script>

利用HTML页面代码结构化,把大段JS代码独立到HTML页面之外,,美观且方便文件级别的复用。

引用外部JS文件的script标签中不可以写代码

适合于JS代码量比较大的情况

多行注释:ctrl+alt+/

js的输入输出语句:

        //输入框

        prompt('请输入你的你年龄');

        // 警示框

        alert('计算的结果是');

        // 日志打印内容

        console.log('可见');

变量:用于存放数据的容器(空间)

var+变量名:申明一个变量;

        var name = prompt('请输入你的名字');

        alert(name);

获取输入框的值并显示

变量不声明直接用可以但是不提倡;

驼峰命名:首字母小写后面每个单词首字母大写;name在某些浏览器有特殊意义,不要用作变量名!!!!

数据类型

var num= 10 ;js的数据类型是根据等号右边的内容来确定的;js的变量数据类型是可以变化的,js是一种弱语言,主要是看等号右边的值。

简单数据类型(Number、String、Boolean、Undefined、Null)

复杂数据类型(object)

数字的进制问题:8进制数字前面加0;16进制前面加0x

        console.log(Number.MAX_VALUE);

        console.log(Number.MIN_VALUE);

数字型的最大值和最小值

        console.log(Number.MAX_VALUE * 2);

        console.log(-Number.MAX_VALUE * 2);

无穷大和无穷小

NaN表示非数字

isNaN()方法用来判断是否是为非数字对象是返回false不是返回true。

字符串数字类型:(外单内双或外双内单)

字符串转义符:(要写到引号里面)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA55uK5pm656u5,size_20,color_FFFFFF,t_70,g_se,x_16

字符串的长度:.length;

字符串的拼接:+;只要有字符串和其他类型的数据拼接最终展示的还是字符串类型;数值相加字符相连。

Boolean类型参与运算时,true被当作1,false当作0;

一个变量声明未赋值就是undefined类型,和字符串相加时是undefined字符串;和数字相加是NaN(not a number);null+字符串是null字符串,与数字相加就是数字。

获取变量的数据类型:  console.log(typeof total); console.log(typeof null)是object

prompt得到的数据类型是字符串。可以根据控制台打印出来字体颜色判断是哪一种数据类型。

数据类型的转换:

转字符串:toString()、String()、+””(最重要的就是+拼接字符串也叫做隐式转换!)

转换成数字型:parseInt(string)、parseFloat(string)Number()强制类型转换、js隐式转换利用算术运算隐式转换为数值型(也十分常用)。如果带单位会自动将单位给去了。

转化成Boolean类型:Boolean()函数代表空、否定的值会被转换成false如:“”、0、NaN、null、undefined。其余的值都是true。

解释性语言和编译性的区别:

编译器翻译成机器语言的方式有:一个式编译、一个是解释;两种方式之间的区别在于翻译的时间点不同

编译器是在代码执行之前进行编译,生成中间代码文件

解释器是在代码运行的过程中进行及时的解释,并立即执行

总的来说就是解释性语言是逐行进行的,一边翻译一边执行,编译性语言是先全部翻译完之后再来执行。

标识符:指开发人员为变量、属性、函数、参数取的名字

标识符不能是关键字或者是保留字

关键字:是指JS本身已经使用了的字,不能再把他们充当变量名或者是方法名

包括:break、case、catch、continue、default、delete、do、else、finally、for、function、if、in、instanceof、new、switch、this、throw、try、typeof、var、void、while、with等。

保留字:实际上就是预留的关键字,意思现在虽然还不是关键字,但是未来可能成为关键字,同样不能使用他们最为变量名或者方法名(boolean、byte、char、const、debugger、double、enum、export、extends、final、float、goto、implements、import、int、interface、long、mative、package、private、protected、public、short、static、super、synchronized、throw、transient、volatile等。

JavaScript运算符

用浮点数继续运算的时候会有精度问题,避开两个浮点数进行比较。

由数字、运算符、变量等组成的式子我们称为表达式。

前置自增和后置自增单独使用效果是一样的

后置自增:先返回原值后自加1;

比较运算符:===(全等一摸一样!!!!!数据类型也要一样)!==(不全等);==会默认将字符串的数据类型转换位数字型!!!

逻辑运算符(布尔运算符):&&、||、!。

冒泡排序和选择排序

package mWu;

import java.util.Arrays;

public class paixu {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		int[] arr = { 23, 5, 3, 6, 78, 9 };
		int[] arr1 = { 23, 5, 3, 6, 9 };
		sort(arr);
		choose(arr1);
		System.out.println(Arrays.toString(arr));
		System.out.println(Arrays.toString(arr1));

	}

	public static void sort(int[] arr) {
		for (int i = 0; i < arr.length - 1; i++) {
			int temp;
			for (int j = 0; j < arr.length - i - 1; j++) {
				if (arr[j] > arr[j + 1]) {
					temp = arr[j];
					arr[j] = arr[j + 1];
					arr[j + 1] = temp;
				}
			}
		}
	}

	public static void choose(int[] arr) {
		for (int i = 0; i < arr.length-1; i++) {
			int temp;
			for (int j = i + 1; j < arr.length; j++) {
				if (arr[i] > arr[j]) {
					temp = arr[i];
					arr[i] = arr[j];
					arr[j] = temp;
				}
			}
		}
	}

}

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

益智竹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值