小菜和它的js基础故事

181 阅读4分钟

js输出

在页面输出:
document.write('hello world!');
在控制台输出:
console.log('hello world!')
对话框输出:
alert('hello world!')



===判断值和类型是否相等,boolen类型

代码执行顺序:

1.顺序执行

2.分支判断

if   if else 三目运算符(条件判断) ? (true执行的) : (false执行的) 多路选择结构(switch)
 
 switch引例
 var age = window.prompt('输入一个数字');
// window.prompt 输入的内容是字符串
console.log(typeof age);
console.log(typeof(age*1));
switch(age*1) { //switch本来就是跳转的意思(又称为“开关”),所以switch语句就是判断情况,跳到符合的情况开始执行
  case 4:
    alert("c的值是4");
  case 3:
    alert("c的值肯定大于等于3");
  case 2:
    alert("c的值肯定大于等于2");
    break;
  case 1:
    alert("c的值肯定大于等于1");
}
// if(age==4 || age==3 || age==2 || age==1){
//   alert("c的值是4");
//   alert("c的值肯定大于等于3");
//   alert("c的值肯定大于等于2");
//   alert("c的值肯定大于等于1");
// }



var age = window.prompt('请输入年龄...');
age *= 1;
// 比较case后面的内容 是否与switch后面的内容相等
    switch(true) {
  case age<=18:
    console.log('少年')
    break;
  case age>18 && age <= 30:
    console.log('青年')
    break;
  case age>30 && age <=50:
    console.log('中年')
    break;
  case age>50 && age<=75:
    console.log('中老年')
    break;
  case age>75:
    console.log('老年')
    break;
}

3.循环

 for
 do while 至少会执行一次
 while 可能一次都不执行

函数

1.function声明一个函数function 函数名(形参)

例子:
function sum(num1, num2) {
  return num3 = num1*1 + num2*1;
 //函数中遇到return关键字,直接返回,后面的内容不会继续执行
  console.log(888);
}

2. 方法调用 :实际参数

var num4 = sum('1111',2);

3.局部变量:在函数体内 全局变量:在函数体外

4.变量提升

     只有var关键字定义的 才会出现变量提升
     eg:  
     console.log(a);
     var a=1;
     根据var的变量提升原则相当于
     var a;
     console.log(a);//a undifind
     a=1;
     
     函数的变量名提升
     a();
     function a(){
     console,log(123456);
     }

数组(参考javascript参考手册)

    1.定义数组
    var arr=[];
    var arr1=new Array();
    参数是一个值,定义了一个数组,参数表示数组的长度 length
    eg: var arr2 = new Array(4);// [ , , , ]
    参数是多个值,对数组进行了初始化
    eg: var arr3 = new Array(4,5,6);//[4, 5, 6]
    2.数组长度获取
     数组名.length
     eg:var arr4 = [1,2,3,4,5,6];
     console.log(arr4.length);
    3.undefined 数组已经声明过了,但是未赋值
    4.concat 数组的拼接, 返回一个新的数组
    eg:var a1 = [1,2];
       var a2 = [2,3];
       var a3 = a1.concat(a2);
      console.log(a3);
    5. push 在数组的末尾添加内容 返回的是数组的长度
      eg:ar len = a1.push(3,4);
    6. pop 删除数组的末位 返回的是删除之前的最后一位 eg:var a = a1.pop();
    7.shift删除数组的第一项 返回的是原数组的第一个值
    eg:var a = a1.shift();
    8.unshift 在数组的开头添加 返回数组的长度
    eg:var d = a3.unshift(1);
    9.slice(start, end)
    从数组中提取一部分,从下标start开始到end(不包含end)
    10.splice 像原数组添加或删除,并且会修改原数组
    eg:var a9 = a7.splice(0,0,9); 第0个开始,删除0个,添加一个9
    var a8 = a7.splice(0,1); 第0个开始,删除一个,返回的是删除的
    11.reverse 颠倒数组的顺序 并且会修改原数组
    eg: b.reverse();
    12.sort 排序 会对原数组修改
    eg: var b1 = ['11','12','24','2','3'];
    function s1(a,b) {
    return a-b  升序排列
    return b-a  降序排列
    }
    b1.sort(s1)
    13.tostring数组转字符串 原数组不变
    eg:
    <script type="text/javascript">
    var arr = new Array(3)
    arr[0] = "George"
    arr[1] = "John"
    arr[2] = "Thomas"
    document.write(arr.toString())
   </script>
    
    输出:
     George,John,Thomas
     
     14.join分隔符
     15.改数据数据和地址问题,原变量是否变,和c一样

对象:(和C++类一样的使用方式)

1.定义对象

eg:法一:var obj = {}; 
 var person = {
    // key: value
    name: 'xiaoming',
    age: '18',
    eat: function() {
      console.log('eat.....');
    }
  }
  法二:
  var obj1 = new Object();
  obj1['name'] = 'xiaoming';
for in循环对象
   for( key in course) {
    console.log(key);
    console.log(course[key])
  }
  对象 数组一起用
   var courseList = [
    {
       name: 'html',
       price: '111'
     },
    {
       name: 'css',
       price: '222'
 },
     {
       name: 'js',
       price: '333'
     }
   
   //与for in一样,循环对象
    document.write('<ul>');
     for(var i =0 ; i< courseList.length; i++){
     document.write('<li class="list">'+courseList[i].name+':'+courseList[i].price+'</li>');

math.random();随机数

创建对象
var day = new Date();
  var year = day.getFullYear();此处返回
  还可以返回年月日分秒毫秒

字符串对象

    创建字符串对象:
    法一:var str1="hello world";
    法二:var str2=new String('hello');

字符串的方法和属性:

    字符串长度 str1.lenght;
    字符串位置 str2.indexOf
    字符串最后出现位置 str1.lastIdex
    替换 str1.replace('hello','xiao');//用xiao代替了hello
    返回从指定位置开始的指定字符串长度str.substr(0,5)//0位置开始,长度为5的字符串具体内容
    substring(0,5)//0位置开始,5位置结束,且不包括5位置的字符串
    toLowerCase 转为小写字母
    toUpperCase 转为大写字母
    split 分割符