2.2.1 js基本语法

  • js变量定义

js语法与C/C++/java等C-Style类型语言语法相近,如基本数据类型:

1. var b=true;//定义布尔变量b,并赋值为true,js注释与C/C++完全相同,此处不详述

2. var i=0;//定义型变量i,并赋值为0

3. var j=-1000;//定义整型变量j,并赋值为-1000

4. var k=0.123;//定义浮点数k,并赋值为0.123

5. var s ="Hello World";//定义字符串变量s,并幅值为"Hello World"

6. var obj ={Name:"Soong",Age:28};//定义对象obj,设置其属性:Name为“Soong”,Age为28

js不需要像C语言一样显式的指定具体类型,如int,double等,统一使用var关键字声明变量。

  • js四则运算与C语言相同,如:

1. i +=10;//等同于i=i+10

2. i++;//等同于i=i+1

3. j /=100;//等同于j=j/100

  • js条件转移与循环语句与C语言类似,如下:

1. var num =100;//定义整数

2. if((num%2)==1){ //求num的余数,“%”为求余数运算符,与C语言一样

3.    console.log("奇数");// console.log()为FireFox浏览器内置的输出函数,类似于C语言中printf

4. }else{

5.    console.log("偶数");

6. }

  • js的for循环求0到9之和:

1. var sum =0;

2. for(var i =0;i<=9;i++){

3.    sum+=i;

4. }

  • js的do-while循环求0到9之和:

1. var sum =0, num =1;

2. do{

3.    sum+=num++;

4. }while(num<10)

循环语句中continue和break语句的用法也与C/C++完全相同。

怎么样?是不是基本和C语言一样!

  • js数组与C++标准库(STL)中vector类类似,用法如下:

1. var v= new Array(5) ;//定义一个长度为5的数组

2. v[0]=1;v[3]=4;

3. var v2=[] ;//定义数组v2与v2=new Array();作用完全相同

4. console.log(v.length)//输出数组v的长度

5. var arr= new Array("one","two","three", 3 , 4 ,5);

6. arr.push(1.2, 2.3 , 3.4);//使用push函数从尾部添加数据

7. arr.pop();//从尾部删除一个数据

  • js函数定义

js中定义和使用求和函数:

1. functionAddFun(a,b){

2. var res;

3.    res= a + b;

4. return res;

5. }

6.

7. var c=AddFun(1, 2);

  • js内置函数

与C语言不同需要注意的是:部分浏览器不支持js函数使用默认参数,如IE和EDGE。js内置了一些数学函数,如指数运算、开方、三角函数等,类似与C语言中math.h中的数学函数,js内置数学函数有:

1. var rnd=Math.random();//使用 random()返回 0到1之间的随机数

2. var max=Math.max(2,5,8,1);//使用max()返回两个给定的数中的最大值

3. var pi=Math.PI;//Math.PI表示圆周率

4. var sqr=Math.sqrt(5);//求5的平方根

5. var i=Math.floor(3.4);//求不超过3.4的最大整数

6. var e=Math.exp(2);//指数函数

7. var s=Math.sin(Math.PI/6);//求30度角的正弦值

  • 类的概念 早期js中没有类的概念;到ES6标准中加入了js类的概念。如下定义了三个类:水管类、阀门类、水位计类。

1. class Tube{//定义了水管类

2. constructor(flux) {//构造函数,初始化成员变量(这里是流量flux)

3. this.flux = flux;//成员变量(这里是流量flux)

4.    }

5. }

6.

7. class Valve{//定义了阀门类

8. constructor(valveOpenning) {//构造函数,初始化成员变量(这里是阀门开度)

9. this.setValveOpenning(valveOpenning);//调用成员函数

10.     }

11.     setValveOpenning(value){//成员函数

12. if(value>1) value=1;

13. if(value<0) value=0;

14. this.valveOpenning = value;

15.     }

16. }

17.

18. class LevelSensor{//定义了水位计类

19. static getLevel(pool){//静态函数:返回水位值

20. return pool.actualLevel;

21.    }

22. }

没看懂吧?我们说说什么是类?类可以理解为自定义数据类型,例如我有一个height变量可以表示身高,一个weight变量可以表示体重。那有没有一个数据类型能够同时包含两个或者多个变量呢?类就可以办到,通过关键词来定义类,如我们定义了一个Person类,包含了height和weight两个变量:

1. class Person{

2. constructor(weight,height) {

3. this.weight = weight;

4. this.height = height;

5.    }

6. }

 其中关键字constructor是什么意思呢?constructor是构造函数,用于初始化成员变量weight和height的。定义一个变量xiaoming,体重80kg,身高1.75m,如下:

1. class Person{

2. constructor(weight,height) {

3. this.weight = weight;

4. this.height = height;

5.    }

6. }

7.

8. xiaoming=new Person(80,1.75);

 使用关键字new 和类名(Person)定义新的变量,并给出初始化参数(体重和身高)。如何获取xiaoming的BMI(体重除以身高的平方)值呢?我们需要定义一个成员函数,如下:

1. class Person{

2. constructor(weight,height) {

3. this.weight = weight;

4. this.height = height;

5.    }

6.    getBMI(){//获取BMI值

7. return this.weight/this.height/this.height;

8.    }

9. }

10.

11. xiaoming=new Person(80,1.75);

12. console.log(xiaoming.getBMI());//输出BMI值

 注意:此处的console.log函数与C语言的printf类似,输出调试信息。那么this关键字是什么意思呢?和C++的用法一致,请百度之。

原文链接:https://mp.weixin.qq.com/s?__biz=MzU0MjkyMzYxMA==&mid=2247483704&idx=2&sn=d12eeb2a1acd683f13a1d4f479ea010c&chksm=fb120f0dcc65861bd08e5b6bf12372898e4e1997414ddd2c31d26edaa773a2f203dafd9d3f97#rd

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏烂笔头

Python魔术方法-Magic Method

目录[-] 介绍 在Python中,所有以“__”双下划线包起来的方法,都统称为“Magic Method”,例如类的初始化方法 __init__ ,Pyt...

36760
来自专栏carven

浅谈闭包

闭包 – closure, 应该可以说是javascript的一个难点吧, 其实说难也不难, 只是因为没有真正一个权威的人/书去给他一个真正的定义。 不过,学编...

10100
来自专栏思考的代码世界

Python编程从入门到实践之函数|第8天

函数是带名字的代码块,用于完 成具体的工作。要执行函数定义的特定任务,可调用该函数。需要在程序中多次 执行同一项任务时,你无需反复编写完成该任务的代码,而只需调...

36770
来自专栏java一日一条

Swift 中的内存管理详解

这篇文章是在阅读《The Swift Programming Language》Automatic Reference Counting(ARC,自动引用计数)...

16610
来自专栏女程序员的日常

值类型和引用类型的区别,struct和class的区别

C#值类型和引用类型 1、简单比较   值类型的变量直接存储数据,而引用类型的变量持有的是数据的引用,数据存储在数据堆中。   值类型(value type):...

29310
来自专栏javascript趣味编程

2.2.1 js基本语法

js不需要像C语言一样显式的指定具体类型,如int,double等,统一使用var关键字声明变量。

18400
来自专栏Android开发指南

6:异常处理

31580
来自专栏云瓣

读书笔记-你不知道的JavaScript(上)

本文首发在我的个人博客:http://muyunyun.cn/ 《你不知道的JavaScript》系列丛书给出了很多颠覆以往对JavaScript认知的点...

422100
来自专栏偏前端工程师的驿站

一起Polyfill系列:Function.prototype.bind的四个阶段

昨天边参考es5-shim边自己实现Function.prototype.bind,发现有不少以前忽视了的地方,这里就作为一个小总结吧。 一、Function....

19360
来自专栏黑泽君的专栏

面向对象思想的引入

前面我们讲过数组,当有多个数组都需要遍历时,我们可以将遍历的代码封装到方法中,需要遍历时,就调用相应的方法即可,提高代码的复用性。

7710

扫码关注云+社区

领取腾讯云代金券