JavaScript_01

@@以下js代码都在内部式中演示@@

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>模板</title>
</head>
<body>
</body>

    <script type="text/javascript">
        /* js代码位置*/
    </script>

</html>

2.js变量

js变量在定义的时候与python、php一样不指定类型,在使用的时候可以赋值为任何类型,只有类似java,c/c++,c#在定义变量的时候,必须指定变量类型,而且只能赋值为该类型的值。
js中代码的执行顺序是自上往下,边解释边执行。

变量的声明
1.先声明

var dog;
alert(dog); //undefined. 未定义
dog = '小黄';
alert(dog)

2.声明时立刻定义

var dog2 = '小红';
alert(dog2)

变量名的命名规范(python的变量命名规则适用于js)

  • 严格区分大小写
  • 命名时名称可以出现字母、数字、下划线、$ ,但是不能数字开头,也不能纯数字,不能包含关键字和保留字。
  • 关键字:var number等,除了关键字 top、name 也尽量不使用。
  • 驼峰命名法(推荐):有多个有意义的单词组成名称的时候,第一个单词的首字母小写,其余的单词首字母写
  • 匈牙利命名:就是根据数据类型单词的的首字符作为前缀

js关键字

js保留字


3.基本数据类型

js中的数据类型

  1. 基本数据类型5种:number string boolean null undefined
  2. 引用数据类型:
    * -对象数据类型:array object 正则REGEXP
    * -函数数据类型:function

五种基本数据类型

var a=123;  //number
console.log(a) //打印数字与字符串颜色不一样
console.log(typeof a) // typeof是个方法,检验数据类型,可以不写括号

var num = 100.001;
//将number转换为字符串
var numStr = num.toString();

//四舍五入
var numDian = num.toFixed(2) //参数为保留的位数

var str='123';  //string
console.log(str)

var b1=true; //bookean
console.log(b1)

var c1=null; //null是一个空对象,object类型

var d1; //定义的时候没有赋值,undefined

var e1 = 5/0;
console.log(e1) //Infinity 无限大,number类型

4.运算符

js中的运算符跟python中的运算符有点类似,但也有不同。所谓运算,在数学上,是一种行为,通过已知量的可能的组合,获得新的量。

1.赋值运算符 =

var money=prompt('请输入金额....')
var saveMoney = money * 2;
console.log(saveMoney)

2.算数运算 + - * / % 取余

var a=10;
var b = 5;

var sum = a + b;

3.复合运算符

var c=7,d=8;
c += d;

4.自增和自减,和c,java中一样

var d = 1;
var f1=(d++) + 1;  //先用后自加
console.log(f1)
var f2=(++d) + 1;  //先自加后用
console.log(f2)
var f3=d--;
var f4=--d;

5.比较运算符 > >= < <= == === !== !=
注意:!== 不等同于(值和类型有一个不相等或者两个都不相等)

console.log(5>6);
console.log('5'==5) //== 是比较值的大小,浏览器会(随机?)隐式转换一个类型成另一个类型
console.log('5'=== 5) //=== 是比较类型和值,只有类型相同并且值的大小一样才能为true

6.逻辑运算符 &&(and) ||(or)

5.字符串处理

字符串运算

var firstName = '欣儿';
var lastName = '李';
var fullName = firstName + '' +  lastName;
console.log(fullName)

var str1 = '晓庆'
var str2 = '邓晓庆'
fullStr = '呵呵' + str1 + "哈哈" + str2
console.log(fullStr)

var a1='1';
var a2='2';
console.log(a1+a2)//'12' 字符串类型加号表示字符串拼接 ,字符串不能直接进行减运算,
// 但是做减乘除的时候浏览器会将字符串转换为数值类型进行转化(隐式转换)
console.log(parseInt(a1) + parseInt(a2))         //parse...类型转换方法

var b1='one';
var b2 ='two';
console.log(b1*b2); //NaN :not a number
console.log(typeof b1*b2); // number (与上面的描述矛盾!解析机制导致的)

字符串常见内置方法

var str1 = 'hello alex';
var str2 = 'xxxxxxx';

//返回指定索引的位置的字符
var oneChar = str1.charAt(2);

//返回字符串值,表示两个或多个字符串的拼接
console.log(str1.concat(str2));

//(正则后面会有专题讲解)返回正则表达式模式对字符串进行产找,并将包含查找结果作为结果返回
console.log(str1.match("a"));

//替换,第二个参数替换第一个参数,从前到后只替换一个
var rep = str2.replace("x","o");
console.log(rep);

//查看搜索值的偏移量,没有则返回-1
var offSet = str1.search("a");
console.log(offSet);

//返回start到end-1之间的字符串,索引从0开始
var piece = str1.slice(2,4);
console.log(piece);

//切割字符串切割,限制分割的次数,返回的第一个参数为切割之后返回是列表长度
var li = str1.split("l",2);
console.log(li);

//提取一个区间的字符,左闭又开可以写成substr
var inner = str1.substring(2,7);
console.log(inner);

// 获取长度
var len = str.length
console.log(len);

//大小写转换
var upstr = str1.toUpperCase();
var lowerstr = upstr.toLowerCase();


6.数据类型转换

常见的为数字类型转换
1.将数字类型转换为字符串类型

var n1 = 123;
var n2 = '';
var n3 = n2 + n1;  //将数字类型隐式转换为字符串类型再拼接
console.log(n3)
console.log(typeof n3)

2.强制类型转换

数字强制转换为字符串的两种方式

var n1 = 123;
var str1=String(n1);
console.log(typeof str1)

var num=234;
console.log(num.toString())

字符串强制转换为数字

var strintNumer = '789';
var num2 = Number(strintNumer)
console.log(parseInt(strintNumer))
//parseInt可以解析一个字符串并且返回一个整数,甚至123.45fdgaf这种也能返回123

console.log(parseFloat(strintNumer))//123.xxx45fdgaf这种也能返回123.45

js中的boolean
js中所有的数据类型都可以被转换为boolean,非0真1

  • true: Infinity ,数字非0 ,undefined,
  • false: 数字 0 , 字符串'',NaN,null
var b1='';
console.log(Boolean(b1))

7.流程控制与循环语句

流程控制与循环
与C如出一辙
语法 if(true) else if(true) {} ... else{}

var ji = prompt('请输入一个数字:');
if(ji >= 20){
    console.log('这个数字大于或者等于20')
    }
else
    alert('这个数字小于20!')

switch语法
匹配相关选项,直到遇见break 跳出,否则继续执行下面的语句,不能加continue;

var gameScore = 'batter';
switch(gameScore){
    case 'good':console.log('good');break;
    case 'batter':console.log('batter');break;
    default : console.log('default')
}

while循环
初始化循环变量 判断循环条件 更新循环变量

var flag = 1;
while(flag < 111){
    if(flag % 3 === 0){
        console.log(flag);
        }
    flag++;
}

do while 循环
先做后循环

var i = 3;
do{
    console.log(i)
    i++;
}while(i<10);

for 循环

执行规则:初始化-->判断-->执行循环体-->跟新循环变量-->判断-->执行循环体-->更新变量-->判断.......

for(var j=100;j<200;j++){
    if(j % 2 === 0){
        console.log(j)
    }
}

嵌套小练习

for(var i=0;i<3;i++){
    for(var j=0;j<6;j++){
        document.write('*')
    }
    document.write('<br>')
}

练习,打印一个菱形

var maxNumerStare = 12;  //记录需要打印的星星数
var witeSpace = parseInt(maxNumerStare / 2); //初试需要打印的空格
var printStarNumber = 1; //初始化需要打印的星星个数
for(;witeSpace>0;witeSpace--,printStarNumber+=2){
    //先打印空格
    for(var j=0;j<witeSpace;j++){
        document.write('&nbsp;')
    }
        //打印星星
    for(var m=0;m<printStarNumber;m++){
        document.write('*')
    }
        //打印空格
    document.write('<br>')
}
for(;printStarNumber>0;witeSpace++,printStarNumber-=2){
    //先打印空格
    for(var j=0;j<witeSpace;j++){
        document.write('&nbsp;')
    }
    //打印星星
    for(var m=0;m<printStarNumber;m++){
        document.write('*')
    }
    //打印空格
    document.write('<br>')
}


8.数组

数组里面存放内容的数据类型没有限制

空数组 var emptyArray=[]

1.字面量方式创建(推荐方式,简单直观)

var colors = ['red','black','green'];

2.使用构造函数的方式,使用new关键词对构造函数创建对象

var colors2 = new Array();
var colors3 = new Array('white','red','orange');

//数组的赋值
var arr=[];

arr[0] = 123;
arr[1] = '哈哈哈';
arr[2] = new Array('good','batter');
console.log(arr[2].length)

数组的常用方法
ps:百度 开发者网络,网罗web开发知识,建议没事就逛逛。

1.数组的合并 concat()

var narth = ['北京','山东','天津'];
var south = ['东莞','深圳','上海'];
var newArray = narth.concat(south);
console.log(newArray);

2.将数组转换为字符串 toString()

var score = [1,2,3,4,5];
var str = score.toLocaleString() ;//总体一个元素,中间有
console.log(typeof str);  

join将数组中的元素用指定的字符串连接起来成一个新的字符串,默认为逗号

var score = [1,2,3,4,5];
var str2 = score.join("");
console.log(str2);

3.查找下标

var score = [1,2,3,4,5];
//indexOf 正向查找,如果查找的值不在数组中,则返回-1
var index = score.indexOf(4);
console.log(index);

// 反向查找
var lastIndex = score.lastIndexOf(2);
console.log(lastIndex);

4.数组的排序

var names = ['egon','alex','Alex','wxx'];
//反转数组,返回值和原数组都被反转了!!!!!!
var reverNames = names.reverse();

//sort() 按照26个字母排序,大写的排在前面,如果第一个相同则看后面的顺序,以此类推
//注意!原数组也被排序了
var orderNames = names.sort();
console.log(orderNames);

5.移除元素和添加元素

var names = ['egon','alex','Alex','wxx'];

//首部:移除数组中的第一个元素,返回的结果是移除的第一个结果,原先数组自动向前占位
var firstName = names.shift();
//首部:向数组的开头添加一个或者多个元素,并返回新的数组的长度
var newLength = names.unshift("shanshan","xiner");
console.log(newLength);

//尾部:push() 向末尾添加一个或多个元素,返回新长度
var newLength= names.push('liser')
console.log(newLength)
//尾部:pop()删除数组最后一个元素
var lastName = names.pop()
console.log(names)

6.获取数组长度

var arr = [1,2,3,4] 
var len = arr.length 
  1. 切片,左闭右开
var arr = [1,2,3,4];
var sli = arr.slice(1,3); 
console.log(sli)

练习,反转字符串

var str = 'hello luffy';
var resvrceStr = str.split("").reverse().join("")
console.log(resvrceStr)

9.函数的使用

函数的创建,有函数的声明,就有函数的调用

function add(){
    alert("函数被调用了")
}
//函数的调用
add()

函数声明的时候带参数

function add2(a,b) {
    alert(a+b)
}
add2(3,4)

有参数,带返回值

function add3(x,y) {
    return x+y;
}
alert(add3(3,4))

posted @ 2018-05-10 23:55  哈哈大圣  阅读(113)  评论(0编辑  收藏  举报