Day01 js基本语法

2018-01-08  本文已影响0人  azure_1122

day01 JS基本语法

javascript基本介绍及发展趋势(脚本语言)

JavaScript是一种轻量级、解释型的Web开发语言。
Javascript,从最开始的被人误解,到现在的迅速发展,无论是jQuery,还是nodejs这种服务器端的语言,都无疑变向证明了JavaScript这门语言的强大。

JS和H5的关系

JS是网页脚本语言,代表控制网页的行为。
H5是目前最流行的HTML开发语言, 配合CSS层叠样式表,专门用于布局。
web项目组成 ( UI界面(ps/AI) + 前端渲染(html+css+js) + 后端(jsp/php...) )

编写Js及如何运行Js

javascript在html中的使用和代码嵌入类似于css文件
'<script type="text/javascript" src="外部的js文件"></script>'
目前 type 属性的值依旧还是 text/javascript。不过,这个属性并不是必需的,如果没有指定这个属性,则其默认值仍为 text/javascript。

需要注意的是,带有 src 属性的标签之间再包含额外的JavaScript代码。如果包含了嵌入的代码,则只会下载并执行外部脚本文件,嵌入的代码会被忽略。src属性还可以包含来自外部域的 JavaScript 文件

对象属性和方法(window和document)

变量的概念

变量:变化的 / 写入内存的 / 不可前置 / 松散类型 / 同时定义多个。
所谓变量,就是特定时间用于保存特定值的一个名字而已,并且初始化后可以再次改变的量。ECMAScript(欧洲计算机制造商协会) 的变量是松散类型的,所谓松散类型就是 可以用来保存任何类型的数据。定义变量时要使用 var 操作符(var是关键字),后面跟一个变量名(变量名是标识符)

尽量不要使用关键字(具有特定用途)和保留字(将来被用作关键字)作为变量名

赋值、关系、数学运算符的讲解

数学运算符 + - * / %

关系运算符<、>、<=、>=、==、===、!=(不相等) !==(不全等)

数据类型、变量不同类型之间的自动、手动转换。

数据类型

显示转换、强制转换、手动转换

逻辑运算符(条件)

&& 与、|| 或、! 非

进制的简单介绍

当一个数字以0开头时,就表示这是一个八进制数,以0x前缀来表示一个十六进制值。

NaN的概念及应用

注意:因为NaN代表非数字,它不等于任何值,也不能做运算,即使alert(NaN == NaN); 结果也是false
isNaN(num)方法,该方法判断num变量的值是否是NaN(不是一个数字)

应用

1.计算两个文本框的和
2.var k=0; console.log(k+++++k+k+k++);
3.为抵抗洪水,战士连续作战89小时,编程计算共多少天零多少小时?
4.小明要到美国旅游,可是那里的温度是以华氏度为单位记录的。它需要一个程序将华氏温度80度)转换为摄氏度,并以华氏度和摄氏度为单位分别显示该温度。
提示:摄氏度与华氏度的转换公式为:摄氏度 = 5/9.0*(华氏度-32)保留3位小数

综合应用

1.计算两个文本框的加减乘除
要求:1) 使用parseInt/parseFloat/Number方法类型转换
2) 计算结果使用Math.round方法四舍五入为整数

    关系运算符 <、>、<=、>=、==(等于)、===(全等或者恒等)、!=(不相等)  !==(不全等)
    alert(5=='5');//true 等于比较的是值。将字符串转换数字    ==具有隐式转换(我们看不到)。
    alert(true==1);//true;   true转数字1
    alert(true==2);//false;  1!=2
    
    alert('     '==0);//true
    alert(''=='   ');//false;  字符串的比较

显示转换的方法:Number();   String();  Boolean();
    alert(Number(true));//1
    alert(Number(false));//0
    alert(Number(''));//0
    alert(Number('  '));//0
    alert(Number(123));//123
    alert(Number('abc'));//NaN
    alert(Number('123'));//123
    alert(Number('123abc'));//NaN
    
    alert(true=='a');

非零即真,非空即真。
    console.log(Boolean(0));//false
    console.log(Boolean(1));//true
    console.log(Boolean('hello'));//true
    console.log(Boolean(''));//false;
    console.log(Boolean('        '));//true;

//typeof():检测类型方法,简写: typeof 变量

数据类型:
    基本的数据类型:number/string/boolean/null(空对象/空指针)/undefined(未定义,未赋值或者初始化)
    复合(引用)的数据类型:object(对象)
    
    两个特殊的数据类型:null/undefined
    var num;
    alert(typeof num);//类型:undefined   值:undefined
    var num=null;
    alert(num);//null
    alert(typeof num);//object
null和undefined除了和自己比较是true之外,其他的字符和他们比较都是false;
    alert(null==null);
    alert(undefined==undefined);
    alert(null==undefined);
    alert(true==null);  null不转换
    alert(''==null);
    alert(0==null);
    alert(false==null);
    alert(1==null);
特殊情况
    alert(null>0);//false  null转数字0
    alert(null<0);//false  null转数字0
    alert(null<=0);//true  null转数字0
    alert(null>=0);//true  null转数字0
    alert(null==0);//false  null不转换
//&& 与、|| 或、! 非
    //逻辑与:只有在第一个操作数和第二个操作数都为真的情况下,结果为真。and
    alert(5>3 && 6>5);//true
    alert(5<3 && 6>5);//false
    alert(5<3 && fadsfdsafdsaf);//false  如果第一个参数数为假,后面的操作不会执行。
    alert(5>3 && fadsfdsafdsaf);//报错

    alert(1&&20);//20
    alert(0&&5);//0  如果第一个参数数为假,后面的操作不会执行。输出第一个操作数的值。
    alert(4&&0);//0

    document.write('hello'&&'');//''空
    document.write('分界');
    document.write('hello'&&'        ');//空字符
    document.write('分界');

    alert(false&&'');//false;输出第一个为假的。
    alert(0&&'');//0
    alert(''&&null);//''
    alert(undefined&&null);//undefined
    alert(null&&undefined);//null
    alert(NaN && 0);//NaN
    alert(NaN==NaN);//false;
    alert('abc'==NaN);//false

总结:假的状态--非空即真,非0即真 , undefined,null,NaN

    逻辑或:只有在两个操作数都为假的情况下,结果为假。也就是说如果第一个操作数的求值结果为真,就不会对第二个操作数求值了。or
    alert(5<3 || 3>2);//true
    alert(5<3 || 3<2);//false
    alert(3>2||fdlaskfjkaddsafdasf)//true,第一个为真,后面忽略
    
    
    alert(1||dasfkdasjfk);//1
    alert(dasfkdasjfk||1);//报错 dasfkdasjfk is not defined

    alert(5||6);//5
    alert(''||6);//6

    逻辑非:逻辑非操作符首先会将它的操作数转换为一个布尔值,然后再对其求反。
    逻辑非具有隐式转换。
    alert(!!!!!!!!5);
    alert(!null);//true

    alert(!!5);
NaN:not a number
    isNaN(); 检测括号里面的数字【不是一个数字】。 返回值是布尔值。
    隐式转换  数字
    alert(isNaN(2));//false
    alert(isNaN('2'));//false 
    alert(isNaN('abc'));//true
    alert(isNaN(''));//false 数字
    alert(isNaN(null));//false  0
    alert(isNaN(undefined));//true  NaN
    alert(isNaN(0));//false 
    alert(isNaN(NaN));//true 
    alert(isNaN(true));//false  1
    alert(isNaN(false));//false  0
    alert(isNaN('123abc'));//true  
js定义的数学方法
            
    Math.round();//将括号里面的数字四舍五入成整数。
    Math.ceil();//将括号里面的数字向上取整。
    Math.floor();//将括号里面的值向下取整。
    Math.abs();//取绝对值
    Math.sqrt();//开根号
    Math.random();//随机产生0-1之间的数字,不包括1
    Math.pow();//将幂,里面的第一个数字,底数,第二个数字,指数
    Math.max();//取括号里面的最大的数字,多个数字逗号分隔。
    Math.min();//取括号里面的最小的数字
    Math.PI;//3.141592653589793
    alert(isNaN('2'));//false 
    alert(isNaN('abc'));//true
    alert(isNaN(''));//false 数字
上一篇下一篇

猜你喜欢

热点阅读