初识javaScript(详细)

1 JavaScript出现的社会背景

在JavaScript出现之前所有的表单验证的工作都要在服务器进行。造成服务器的压力越来越大,所以就将某些验证的工作放到客户端中进行。这时就需要浏览器和用户之间产生交互,就这样JavaScript 出现了。

2 JavaScript语言特点

2.1 脚本与非脚本

脚本语言:直接由底层的引擎解释源代码执行。
非脚本语言:一般会产生中间的产物。先将源代码编译为某种中间的文件。然后再执行中间的文件。

2.2 JavaScript 语言的特点:

(1)脚本语言:直接由底层的引擎解释源代码执行。
(2)动态的语言:在解释执行的过程中动态的判断数据的类型。
(3)弱类型的语言:所有的数据都是一种类型。数据的实际类型都是在解释执行的时候动态判断的。
(4)基于原型的语言:涉及到了继承的内容。
举例:
java是基于模板继承。(比如要造一辆汽车。先造一个汽车的生产线。通过生产线去生产汽车。)
js是基于原型继承(已经存在了一辆汽车,在该基础上去改造成我需要的汽车。)

3 JavaScript构成

JavaScript语言由三部分构成:
(1)核心部分ECMAScript:规定了js的基本语法。支持什么样子的数据类型。流程控制、如何定义数组、方法、对象等。
(2)DOM:document object model:在DOM中定义了很多的属性和方法,用来操作页面文档中的内容。DOM规定了如何和页面文档交互。
(3)BOM:browser object model:浏览器对象模型。规定了通过js如何和浏览器交互。

4 html中引入js的三种方式

(1)行内式:直接在开始标签中内嵌js代码。一般结合事件使用。使用率不高。
(2)内部方式:在html文档中使用scirpt 标签。将js代码在标签内使用。
加载执行的顺序为从上到下,标签的个数也没有限制。
一般的使用的方式,就是先定义对应的页面的内容,然后再在script标签
内通过js代码操作对应的页面的内容。
(3)外部方式:创建单独的js文件,加载执行时按照顺序来的。
注:一旦使用了外部引入js代码的方式,外部的优先级最高。

5 js输出内容的方式:

(1)alert(信息)
特点:
1:阻塞式方法,会暂停当前的程序的执行。不点击确定,不能执行后续的代码。
2:该方法属于浏览器窗口的方法,弹窗的风格在各个浏览器之间是不同的。取决于浏览器的设定。
3:可以直接使用,也可以通过window对象去调用。
(2)console.log(信息)
在控制台输出内容,不是阻塞式的方法。
(3)document.write(信息)
在页面中输出内容。

<script>
   alert("hellowrold!");
   window.alert("helloworld!");
   console.log ("helloworld");
   document.write("helloworld!");
</script>

6 标识符

程序需要处理的数据在内存中,在程序中,通过给要处理的数据所占的内存起名字 来访问数据所在的内存。内存的名字专业的称谓是:【标识符】。

6.1标识符命名规则:

(1)标识符的组成由:字符、数字、下划线、$.构成。
(2)标识符不能以数字开头。
(3)标识符大小写敏感,a 和 A 是两个不同的名字。
(4)长度没有限制。不要太长。也不能太短。
(5)不能使用js中的关键字(保留字)。 在js语言中具有特殊意义的符号。 关键字比较多,没有必要去特殊的记忆。随学随记。

6.2标识符命名规范:

标识符的命名规范: 软件编程人员多年总结的一种公共的认知。
(1)见名知意。通过标识符的名字就能知道所在的内存的数据代表了什么。
(2)遵循驼峰命名法: studentName stuName。多个单词构成,单词的首字符大写。
(3)不要使用拼音。使用英文单词,或者是单词缩写。
(4)不要使用单字符标识符。一般只有在for循环中使用单字符标识符。

总结:标识符有很多种,每种标识符的命名规范略有不同。
1:标识符存在的意义: 使用标识符来对应一块内存,通过标识符就可以访问对应的内存中的数据。 2:标识符的命名规则: 3:还有遵守标识符的命名的规范:会让你显得很专业。 4:后面会接触到很多种类标识符。

7 变量

7.1 定义标识符的过程

定义标识符的过程: 需求:定义一个标识符,代表了一个年龄的数据。标识符的名字就是age。 给它一个初始的值。20; 通过标识符访问内存中的数据。就两种诉求:
(1):获得内存中的数据。 直接通过标识符的名字就可以使用标识符所对应的内存中的数据。
(2):修改内存中的数据。 要使用 = 赋值运算符。直接给age 标识符赋一个新的值。

7.2 变量的概念

标识符还有一个使用率更高的名字:变量。 变量是一种标识符。

变量的概念:变量的本质是一块有名字的内存区域,该区域中的数据可以被访问和修改。

<script>
    /*
    //定义标识符
    var age = 20;
    //将age标识符对应的内存中的数据输出。
    console.log ("age = " + age);
    //使用age对应的内存中的数据,减去1之后的结果,修改到age对应的内存中。
    age = age - 1;
    console.log ("age = " + age);*/

    //定义若干个变量,来保存一下自己的属性,并打印到控制台。
    var name = "小白";
    var age = 20;
    var gender = "男";
    var salay = 1000000;
    var height = 175;
    var weight = 135;
    var isHandsome = false;
    var car = null;
    //模式字符串
    console.log (`${name}的年龄是${age},性别是${gender},理想的工资是${salay},身高是${height},体重是${weight}`);

</script>
7.2.1变量的定义的语法

变量的定义的语法:
var 变量名 = 初始值;
var:是js中的一个关键字。用来定义或者声明变量的。 是单词variable。
变量名:要遵循标识符的命名规则,如果是多个单词构成,第一个单词的首字符小写,从第二个单词开始每个单词的首字符大写。 = :赋值运算符,将右边的值赋值给左边的变量。 初始值:是任意的js支持的数据类型的数据。

7.2.2声明变量和定义变量

声明变量的语法:
var 变量名;
定义变量的语法:
var 变量名 = 初始值;
**区别:**定义变量等于:声明+赋初值

7.2.2定义声明变量的多种语法

定义声明变量的多种语法:看下边的示例
(1)建议:变量定义好之后,再使用该变量。先定义后使用。
(2)在其他的语言中,必须先定义后使用。在js中可以在定义之前使用该变量。 该变量的值为 undefined。未定义的意思。
(3) 定义变量等价于,声明变量,然后再赋初值。
(4)如果只是声明变量,没有赋值,那么变量保存的值是undefined;
(5) 定义变量也好,声明变量也好,在js代码加载执行的时候。在script代码块中 声明定义的所有的变量,都会提升到代码的最前面进行声明。
(6) 在script中定义的变量,全局变量。作为window对象的属性存在。 还可以通过window.变量名 访问该变量。
(7)在js中变量是可以重复定义的。不建议。最后变量保存的是最后的值。 后定义的后覆盖前面的。
(8) 变量的分为全局变量和局部变量。全局的是在script中方法外定义的。局部的是在方法内定义的。

<script>
   var age;
   console.log (age);//undefined;
   age = 20;
   console.log (age);//20

   //声明变量,再赋值
   console.log (value);//undefined
   var value;
   console.log (value);//undefined
   value = 100;

   console.log (value);
   console.log (window.value);

   //一次性的可以定义声明多个变量
   //一次性声明了3个变量。undefined。
   var num1, num2, num3;
   num1 = 100;
   // 一次性定义了三个变量
   var val1 = 100, val2 = 200, val3 = 300;
   //声明和定义混合
   var value0, value1 = 100, value2, value3 = 300;

   //变量的重复定义
   var age = 20;
   var age = 30;
   var age = 100;
   console.log (age);

</script>

8 常量

常量:就是不变的量。
js中的常量分为两种:
(1)字面常量。
如:12 12.99 “hello” true false null undefined;
(2) const 修饰的变量。 不可改变的变量。 const 是js中的关键字,用来定义常量的。

8.1 语法

语法: const 常量名 = 初始值;
const 定义的变量,只能赋值一次。赋值之后不能被修改。只能被读取使用。 也可以const修饰的变量称为【只读变量】。 const 是constant 单词的缩写。 只读变量 的名字有自己单独的命名规范: 所有的字符都要大写。多个单词构成,单词之间使用下划线分隔。
如: const MAX_AGE = 200; const MAX_STUDENT_COUNT = 50;

<body>
<!--
   练习:通过键盘输入一个整数,代表了圆的半径,然后求圆的面积和周长。并打印到控制台。

   如果代码中使用了大量的字面常量问题
       1:代码的可读性很差。
       2:维护成本很高。
-->
<script>
   /*
   //输入一个值,定义变量接收该值。
   var raduis = Number (prompt ("请输入圆的半径"));
   //定义变量表示面积,利用面积的公式,求圆的面积。
   var area = 3.1415926 * raduis * raduis;
   //定义变量表示周长,利用周长的公司,求圆的周长。
   var perimeter = 2 * 3.1415926 * raduis;
   //利用模式字符串,打印周长和面积
   console.log (`半径是${raduis}的圆的周长是${perimeter}`);
   console.log (`半径是${raduis}的圆的面积是${area}`);*/

   //上述代码的问题?? 修改精度比较费劲。
   //修改。使用变量保存pi。  问题,存在安全隐患。pi可以被修改。
   /* var raduis = Number (prompt ("请输入圆的半径"));
   var pi = 3.14;
   var area = pi * raduis * raduis;
   var perimeter = 2 * pi * raduis;
   console.log (`半径是${raduis}的圆的周长是${perimeter}`);
   console.log (`半径是${raduis}的圆的面积是${area}`);*/

   //最终版
   var raduis = Number (prompt ("请输入圆的半径"));
   const PI = 3.14;
   var area = PI * raduis * raduis;
   var perimeter = 2 * PI * raduis;
   console.log (`半径是${raduis}的圆的周长是${perimeter}`);
   console.log (`半径是${raduis}的圆的面积是${area}`);
</script>
</body>

9 注释

注释:comments
注释的作用:
帮助程序员理解记忆阅读代码。不参与代码的执行。

注释一共有三种形式:
(1)单行注释。 // 后面的内容都是注释, 紧挨着要注释的代码。 取消和添加注释:快捷键:ctrl+/
(2) /多行注释的内容/ 可以跨行,也可以是一行,或者是一行中的一部分。
(3)文档注释 /** 注释的内容 */ 给方法添加注释。
注:给代码添加合适的注释,是一个程序员的基本素养。

<script>
    //a表示一个身高的变量
    var a = 100;//a表示一个身高的变量

    /*
    * 我是注释
    * 我是注释
    * 我是注释
    * */
    var num = 10 + /*20 + 40 + 30 + */90;

    /**
     * 求3个数的最大值。
     * @param num1 第一个数
     * @param num2 第二个数
     * @param num3 第三个数
     * return 返回三个数的最大值。
     */
    function max(num1,num2,num3) {

    }
    //TODO  我写到了什么什么位置了。

10 浮点数不能进行精确运算

    console.log (3.14 * 12 * 12);//452.15999999999997
    /*

浮点数不能进行精确运算的原因说明:
计算机底层表示数据的时候都是使用二进制。整数部分小数部分都是二进制。
举例:
二进制 0.1 对应着十进制的多少?0.5
二进制 0.01 对应着十进制多少?0.25
浮点数本身就不适合做精确运算。 Math.js

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值