Coder Social home page Coder Social logo

js-principles-scope-lab's Introduction

Scope Lab

Learning Goals

  • Understand how functions determine scope in JavaScript

Introduction

Scuber's drivers are beginning to take down some notes about their customers. Use your knowledge of scope to access and change some of these variables.

Instructions

A word of warning. In this lab, you will practice doing some bad things. For example, we'll ask you to declare variables in global scope, and write functions that break down. You'll also need to use var to declare all variables except when specifically instructed otherwise. We do this because, by testing the limits and exposing the underbelly of a language, you can better understand it and know what to avoid in the future.

Ok, these are your tasks:

  • customerName: Declare a variable in global scope called customerName using the var keyword.
  • upperCaseCustomerName(): Write a function that accesses that global customerName variable, and uppercases it.
  • setBestCustomer(): Write a function that when called, declares a variable called bestCustomer in global scope and assigns it to be 'not bob'. (Poor Bob.) Also, poor us, declaring a global variable from inside a function is one of those things we would never want to do normally, but is good for us to explore right now.
  • overwriteBestCustomer(): See the consequences of declaring a variable in global scope, by writing a new function called overwriteBestCustomer() that changes that bestCustomer variable.
  • leastFavoriteCustomer and changeLeastFavoriteCustomer(): Now declare a constant (using the const keyword) in global scope called leastFavoriteCustomer; be sure to assign it some initial value. Finally, write a function called changeLeastFavoriteCustomer() that attempts to change that constant - notice what JavaScript does when you try to change the constant.

js-principles-scope-lab's People

Contributors

alexgriff avatar curiositypaths avatar drakeltheryuujin avatar gj avatar ihollander avatar jeffkatzy avatar lizbur10 avatar maxwellbenton avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

js-principles-scope-lab's Issues

Minor grammar issue

"Scuber's drivers are beginning to take some notes down about their customers."

should be
"Scuber's drivers are beginning to take down some notes about their customers."

Thank you.

attemptTwoFavoriteCustomers errors without allowing pass

Running attemptTwoFavoriteCustomers with 2 lets throws SyntaxError that causes all tests to fail (not caught). As is the solution is unpassable. I had to throw new SyntaxError to get around it.

Console error log "SyntaxError: redeclaration of let favoriteCustomer"

Assertion Error

When submitting the code for the function "attemptTwoFavoriteCustomers()" on Firefox, an Assertion Error is raised which cases every test to fail, and record it to learn as such. When run on Chrome, it works like it's supposed to.

Issue With Test Code on line 37.

The instructions for this lab calls for us to create a function called changeLeastFavoriteCustomer(). However, the test code calls this function reassignLeastFavorite(). It then calls it correctly on line 39. So either line 37 needs to be changed to the correction function or the instructions and line 39 need to be changed.

what is the error here

var customerName="bob";
function upperCaseCustomerName(){
return customerName.toUpperCase();
}

Issue with setBestCustomer

I see that other people had issues with the last function. Don't know if this one was broken in the fix? The lesson wants us to declare the global variable inside the function but the test only passes with it declared outside the function. I made a guess and it passed. Then I looked at the solution which was the same as what I originally had. To confirm it wasn't a typing issue I copied and pasted the solution and it doesn't pass the setBestCustomer test.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.