JavaScript(一)

一、JS三种书写位置

1、行内式JS

<input type="button" value="点击" onclick="alert('HelloWorld')">
  • 可以将单行或少量JS代码写在HTML标签的事件属性中(以on开头的属性),如:onclick

  • 注意单双引号的使用,在HTML中推荐使用双引号,JS中推荐使用单引号

  • 可读性差,在HTML中编写JS大量代码时,不方便阅读

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

2、内嵌式JS

    <script>
        alert('HelloWorld');
    </script>
  • 可以将多行JS代码写到<script>标签中

3、外部JS文件

<script src="my.js"></script>
  • 利用HTML页面代码结构化,把大段JS代码独立到HTML页面之外,既美观也方便文件级别的复用

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

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

二、注释

1、单行注释

// 单行注释

2、多行注释

快捷键:alt+shift+a

/* 多行注释 */

三、输入输出语句

alert(msg)

浏览器弹出警示框

浏览器

console.log(msg)

浏览器控制台打印输出信息

浏览器

prompt(info)

浏览器弹出输入框,用户可以输入

浏览器

1、prompt

    <script>
        prompt("请输入您的年龄");
    </script>

2、alert(msg)

    <script>
        alert("请输入您的年龄");
    </script>

3、console.log(msg)

    <script>
        alert("请输入您的年龄");
    </script>

四、变量

1、变量

变量就是一个装东西的盒子

本质:变量是程序在内存中申请的一块用来存放数据的空间

2、变量的使用

(1)、声明变量

var age:	//声明一个名称为age的变量
  • var是一个JS关键字,用来声明变量(variable变量的意思)。使用该关键字声明变量后,计算机会自动为变量分配内存空间,不需要程序员管

  • age是程序员定义的变量名,我们要通过变量名来访问内存中分配的空间

(2)、赋值

age=10;		//给age这个变量赋值为0
  • =用来把右边的值赋给左边的变量空间中

  • 变量值是程序员保存到变量空间里的值

(3)、输出结果

console.log(age)

3、变量语法扩展

(1)、更新变量量

一个变量被重新赋值后,它原有的值就会被覆盖,变量值将是最后一次赋的值为准

    <script>
        var myname = '原值';
        console.log(myname);
        myname = '更新值';
        console.log(myname);
    </script>

(2)、同时声明多个变量

中间用英文逗号隔开即可

        var age = 18,
            address = 'LanZhou',
            tel = 908787;

(3)、声明变量特殊情况

var age;console.log(age);

只声明不赋值

undefined

console.log(age)

不声明不赋值直接使用

报错

age = 10,console.log(age);

不声明只赋值

1

(4)、变量命名规范

  • 由字母(A-Za-z)、数字(0-9)、下划线()、美元符号($)组成,如:usrAge,pum01,_name

  • 严格区分大小写。var app;和 var App;是两个变量

  • 不能以数字开头。18age 是错误的

  • 不能是关键字、保留字。例如:var、for、while

  • 变量名必须有意义。

  • 遵守驼峰命名法。首字母小写,后面单词的首字母需要大写。 myFirstName

五、数据类型

1、变量的数据类型

JavaScript是动态语言,变量的数据类型是可以变化的

    <script>
        var a = 10,
            b = 0.123,
            c = 'abc';
    </script>

2、数据类型的分类

  • 简单数据类型(string、number、Boolean、underfined、null)

  • 杂数据类型(object)

number

数字型,包含整数型和浮点型值

0

Boolean

布尔值类型

false

string

字符串类型

""

undefined

声明变量未赋值

undefined

null

声明变量为空值

null

3、获取检测变量的数据类型

    <script>
        var a = 10,
            b = 0.123,
            c = 'abc';
        console.log(typeof a);
    </script>

4、字面量

字面量是源代码中一个固定值的表示法

  • 数字字面量:8、9、10

  • 字符串字面量:”string“

  • 布尔字面量:true、false

5、数据类型转换

(1)、转换为字符串

toString()

转换成字符串

var num=1;alert(num.toString());

String()强制转换

转换成字符串

var num=1;alert(String(num));

加号拼接字符串

和字符串拼接的结果都是字符串

var num=1;alert(num+"我是字符串")

  • toString()和String()使用方法不一样

    <script>
        //1、把数字类型转换成字符串类型 toString()
        var num = 10;
        var str = num.toString();
        console.log(str);
        console.log(typeof str);
        //2、利用String()
        console.log(String(num));
        //3、利用 + 拼接字符串的方法实现拼接效果
        console.log(num + '');
    </script>

(2)、转换为数字型

parseInt(string)函数

将string类型转换为整数数值型

parseInt('78')

parseFloat(string)函数

将string类型转换为浮点数值型

parseFloat('78,21')

Number()强制转换函数

将string类型转换为数值型

Number('12')

js隐式转换

利用算术运算隐式转换为数值型

'12'-0

举例:

    <script>
        var age = prompt('请输入您的年龄');
        //1、parseInt(变量)可以把字符型转换为数字型 得到的是整数
        console.log(parseInt(age));
        console.log(parseInt('3.14')); //取整
        console.log(parseInt('120px')); //120 会去掉px单位
        console.log(parseInt('EM120px')); //NAN

        //2、parseFloat(变量)可以把 字符型的转换为数字型 得到的是小数 浮点数
        console.log(parseFloat('3.14'));
        console.log(parseFloat('120PX')); //120 会去掉px单位
        console.log(parseFloat('EM120PX')); //NAN

        //3、利用Number(变量)
        var str = '123';
        console.log(Number(str));
        console.log(Number('12'));

        //利用了算术运算实现隐式转换
        console.log('12' - 0); //12
        console.log('123' - '120'); //3
        console.log('12' * 1); //123
    </script>

(3)、转换为布尔型

Boolean()函数

其他类型转成布尔值

Boolean('true')

  • 代表空、否定的值会被转换为false。比如:''、0、NaN、null、undefined 其余值都会被转换为true

    <script>
        console.log(Boolean('')); //false 
        console.log(Boolean(0)); //false
        console.log(Boolean(NaN)); //false
        console.log(Boolean(null)); //fasle
        console.log(Boolean(undefined)); //false
        console.log(Boolean('123')); //true
        console.log(Boolean('abc')); //true
    </script>

六、运算符

1、算术运算符

  • +加

  • -减

  • *乘

  • /除

  • %取余

2、递增运算符

    <script>
        //前置递增运算符
        var num = 0;
        console.log(++num);
        //后置递增运算符
        var age = 0;
        console.log(age++);
    </script>

3、比较运算符

    <script>
        console.log(3 >= 5); //false
        console.log(2 <= 5); //true
        console.log(2 = '0'); //赋值
        console.log(2 == '0'); //判断
        console.log(2 === '0'); //全等
    </script>

4、逻辑运算符

    <script>
        console.log(3 > 1 && 1 < 8); //true
        console.log(3 > 1 || 1 < 8); //ture
        console.log(!true); //false
    </script>

七、流程控制

1、顺序流程控制

顺序流程控制是最简单最基本的流程控制,没有特定的语法结构,程序按照代码的先后顺序依次执行

2、分支流程控制

(1)、if 语句

if(条件表达式){
	//执行语句
}

(2)、if else 语句

if(条件表达式){
	//执行语句
} else {
	//执行语句
} 

(3)、if else if 语句

if(条件表达式1){ 
 	//执行语句 
} else if(条件表达式2){ 
  	//执行语句 
} else if(条件表达式3){
  	//执行语句
} else {
  	//执行语句
}

(4)、三元表达式

语法:

条件表达式 ? 表达式1:表达式2

举例:

    <script>
        var num = 10;
        var result = num > 5 ? '是的' : '不是';
    </script>

(5)、switch语句

语法:

switch(表达式){
	case value1:
      //执行语句1
      break;
    case value2: 
      //执行语句2
      break;
  	.......
    default:
      //执行最后的语句
}

3、循环流程控制

(1)、for 循环

for (var i = 1;i<=100;i++){
	console.log('string');
}

(2)、双重for循环

for (var i = 1;i<=100;i++){ 
	console.log('string'); 
	for (var k= 1;k<=100;k++){
		console.log('abc');
	}
}

(3)、while循环

while(条件表达式){
	//循环体
}

(4)、do while循环

do {
	//循环体
} while (条件表达式)

(5)、continue、break关键字

continue关键字用于立即跳出本次循环,继续下一次循环(本次循环体中continue之后的代码就会少执行一次)

break关键字用于立即跳出整个循环(循环结束)

八、数组

1、创建数组

  • 利用new创建数组

  • 利用数组字面量创建数组

    <script>
        //1、利用new创建数组
        var arr = new Array();  //创建空的数组
        //2、利用数组字面量创建数组
        var Array = [];     //创建空的数组
    </script>

2、数组元素的类型

数组中可以存放任意类型的数据

var arrStrus = ['小白',12,true,28.9];

3、获取数组元素

    <script>
        var Array = []; //创建空的数组
        var arrStrus = ['小白', 12, true, 28.9];
        console.log(arrStrus);
        console.log(arrStrus[2]);
    </script>

4、遍历数组

通过“数组名[索引号]”的方式一项一项的取出来

    <script>
        var arrStrus = ['小白', 12, true, 28.9];
        for (var i = 0; i < 4; i++) {
            console.log(arrStrus[i]);
        }
</script>

5、数组长度

    <script>
        var arrStrus = ['小白', 12, true, 28.9];
        console.log(arrStrus.length);
    </script>

6、数组新增元素

    <script>
        //修改length长度来实现数组扩容
        var arr = ['小白', 12, true, 28.9];
        console.log(arr.length);
        arr.length = 5;
        console.log(arr.length);
        //修改索引号来实现数组扩容
        var arr = ['小白', 12, true, 28.9];
        arr[4] = 'abc';
        arr[5] = 'def';
        console.log(arr);
    </script>

九、函数

1、函数的声明

  <script>
          //1、利用函数关键字自定义函数(命名函数)
          function 函数名() {
              //函数体 
          }
          //2、函数表达式(匿名函数)
          var 变量名 = function() {};
          var fun = function() { //fun是变量名不是函数名
              console.log('函数表达式');
          }
  </script>

2、函数的使用

先声明函数后调用函数。语法:

function 函数名() {
	//函数体
}
//调用函数
函数名();

3、函数封装

函数封装就是八一个或者多个功能通过函数的方式封装起来,对外只提供一个简单的函数接口

    <script>
        function getSum() {
            var sum = 0;
            for (var i = 1; i <= 100; i++) {
                sum += i;
            }
            console.log(sum);
        }
        getSum();
</script>

4、函数的参数

function 函数名(形参1、 形参2....) {   //在声明函数的小括号内是形参           
	//函数体        
}        
函数名(实参、 实参2....);   //在函数调用的小括号里是实参

举例:

    <script>
        function getSum(sum) {
            for (var i = 1; i <= 100; i++) {
                sum += i;
            }
            console.log(sum);
        }
        getSum(0);
</script>

5、函数的返回值

    <script>
        function getSum(sum) {
            for (var i = 1; i <= 100; i++) {
                sum += i;
            }
            return sum;
        }
        console.log(getSum(0));
</script>

6、arguments的使用

arguments是一个伪数组,可以获取传入的参数数量

<script>
        function fn() {
            console.log(arguments);
        }
        fn(1, 2, 3);
</script>

十、作用域

1、变量的作用域

全局作用域:整个script标签,或者是一个单独的JS文件

局部作用域:在函数内部就是局部作用域,这个代码只在函数内部起作用

2、全局变量和局部变量

  • 全部变量在代码的任何位置都可以使用

  • 在全局作用域下var声明的变量是全局变量

  • 局部变量只能在该函数内部使用

  • 在函数内部var声明的变量是局部变量

<script>
        //1、全局变量
        var num = 10;
        console.log(num);

        function fn() {
            console.log(num);
        }
        fn();
        //2、局部变量
        function fun() {
            var num1 = 10;
            num2 = 20;
        }
        fun();
        console.log(num2);
</script>

3、作用域链

作用域链:内部函数访问外部函数的变量,采取的是链式查找的方式来决定取那个值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

DF10F-0001A

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

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

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

打赏作者

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

抵扣说明:

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

余额充值